2020年04月12日個人賽

来源:https://www.cnblogs.com/blogxsc/archive/2020/04/18/12723453.html
-Advertisement-
Play Games

A - Balloons 題意:本題的題意比較簡單,簡單說就是分數字,使得A得到的數字之和大於B得到的數字之和,然後輸出分給A的數字的下標。 題解:要註意特判n==1和n==2的情況,屬於簽到題。 代碼: #include<iostream> #include<algorithm> #include ...


A - Balloons

題意:本題的題意比較簡單,簡單說就是分數字,使得A得到的數字之和大於B得到的數字之和,然後輸出分給A的數字的下標。

題解:要註意特判n==1和n==2的情況,屬於簽到題。

代碼:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#define ll long long
using namespace std;
int main() {
    int n;
    cin>>n;
    int num[20]= {0};
    int sum=0;
    for(int i=1; i<=n; i++) {
        cin>>num[i];
        sum=sum+num[i];//總數
    }
    if(n==1) {
        cout<<-1<<endl;
    } else if(n==2) {
        if(num[1]==num[2]) {
            cout<<-1<<endl;
        } else {
            cout<<1<<endl;
            cout<<1<<endl;
        }
    } else { //大於等於 3
        int su=0;
        int i;
        int f=0;
        for(i=1; i<=n; i++) {
            su=su+num[i];
            sum=sum-num[i];
            if(su!=sum&&sum!=0&&su!=0) {
                f=1;
                break;
            }
        }
        if(f==1) {
            cout<<i<<endl;
            for(int j=1; j<=i; j++) {
                cout<<j;
                if(j<i) {
                    cout<<" ";
                }
            }
            cout<<endl;
        }else{
            cout<<-1<<endl;
        }
    }
    return 0;
}

B - Cutting

題意:這一題也比較簡單,題目給你一個長度為n的數組,兩個數之間可以“切斷”,代價是兩個數的差的絕對值。

題解:這一題的解法有幾種,這裡我是用背包(0-1)寫的,關鍵是判斷那兩個數之間可以“切”一刀,代價就作為消耗,獲的得利益就視為“1”,這樣看,就是一道“0-1背包”的裸題。

代碼:

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
    int n,B;
    cin>>n>>B/*這相當於一個總的體積*/;
    int num[250]={0};
    int jnum=0,onum=0;
    for(int i=0;i<n;i++){
        cin>>num[i];
        if(num[i]%2==0){
            onum++;
        }else{
            jnum++;
        } 
    }//數據輸入完畢,下麵開始處理數據
    int t=0;//記錄數量
    int V[200]={0},W[200]={0};
    int tj=0,to=0;//分貝表示前面的奇數與偶數的數量 
     for(int i=0;i<n;i++){//欄隙 
        if(i+1<n){
            if(num[i]%2==0){
                to++;
            }else{
                tj++;
            }
            if((tj==to)&&((jnum-tj)==(onum-to))){
                W[t]=1;
                V[t++]=abs(num[i]-num[i+1]);
                tj=0;
                to=0;
            }
        }
    }        
    int dp[500]={0};
    for(int i=0;i<t;i++){
        for(int j=B;j>=V[i];j--){
            dp[j]=max(dp[j],dp[j-V[i]]+1);
        }
    }
    cout<<dp[B]<<endl;
    return 0;
}

D - Sonya and Hotels

題意:這道題大概意思是講,給你一串數字,在數字之間插入一個數,要求這個數和它相鄰的數的差的絕對值=d,問存在幾個這樣的插入點。

題解:這題比較簡單,這裡我們求相鄰兩個數的差,若差>2*d的話,就可以插入2個,差=2*d,可以插入一個,註意最後兩個端點處各一個。

代碼:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#define ll long long
using namespace std;
int main() {
    ll n,d;
    cin>>n>>d;
    int temp,p;
    cin>>temp;
    ll ans=0;
    for(int i=1;i<n;i++){
        cin>>p;
        if(p-temp-2*d>0){
            ans++;
            ans++;
        }else if(p-temp-2*d==0){
            ans++;
        }
        temp=p;
    }
    cout<<ans+2;

    return 0;
}

 E - Sonya and Exhibition

題意:這一題就比較有意思了,大概意思是說,有n朵花,可以是百合or玫瑰,有m個人,給出他們的觀察區間,求他們的,美麗值(等於玫瑰花的數量*百合花的數量)的總和,求這個美麗值的最大值。

題解:這一題的關鍵就是要知道要使單個美麗值最大,就得使區間中的兩種花的數量相當,還有一個坑就是他這裡給出了有m個人,如果說只有一個人的話,這一點就很好發現了。在這裡,我們只需要使兩種花的交替出現就好了。(就像一個腦筋急轉彎似的)

代碼:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#define ll long long
using namespace std;
int main() {
    ll n,m;
    cin>>n>>m;
    ll li,ri;
    char ptr[10000];
    for(int i=0;i<m;i++){
        cin>>li>>ri;
    }
    for(int i=0;i<n;i++){
        if(i%2==0){
            cout<<1;
        }else{
            cout<<0;
        }
    }

    return 0;
}

F - Sonya and Robots

題意:這一題題意也比較簡單,基本要求就是,給你一串有n個元素的int數組,要你從中尋找兩個數,將這兩個數字分別賦值給兩輛小車,並使它們相向運動,在數組中當遇到與本車上相同的數字時,就停止運動,當兩輛車的最終的相對位置發生變化時,車子就損壞了,問從這個數組中取出的數的對數,有多少多數可以使車子不損壞。

題解:這道題本質上也是一道簡單題,但比賽的時候沒看,大概看了也不會寫,網上的題解給出的是記錄每輛車它的左邊有多少種車的數量,再將它們相加即可,可惜我的想法剛好相反,我想到的是記錄它的右邊的車的種類的數量,最後還沒寫出來,算是一個思維上的教訓吧。

代碼:

#include<iostream>
#include<cstring>
#include<set>
#include<algorithm>
#define ll long long
const int N=100005;
using namespace std;
int arr[N],vis[N];
set<int> st;
int main(){
    int n,t;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>t;
        vis[t]=st.size();
        st.insert(t);
    }
    ll sum=0;
    for(int i=0;i<=100000;i++){
        sum=sum+vis[i];
    }
    cout<<sum<<endl;
    return 0;
}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在整體應用架構中,非生產環境情況下,一般 1GB 或者 2GB 的 RAM 就足夠了。如果我們將這個應用程式劃分為 20 或 30 個獨立的微服務,那麼很難期望 RAM 仍將保持在 1GB 或 2GB 左右。特別是如果我們使用 Spring Cloud 的時候。 首先,準備三個服務,Eureka 服 ...
  • 通過本次講座,我想強調的是,You!Leaders!一定要通過層層疊加的“Rules”建立起本能反應,一遇到類似的事情,應激般的就知道該怎麼設計,怎麼行動,怎麼救火。 而這些“Rules”是經歷了血與火的洗禮鑄造的,每一條都有來由有去路。 等有一天你依據本能(也就是你自建的法則)行事的時候,你就會體... ...
  • 更多精彩文章請關註公眾號『大海的BLOG』 問題 話說大詩人李白,一生好飲。幸好他從不開車。 一天,他提著酒壺,從家裡出來,酒壺中有酒兩鬥。他邊走邊唱: 無事街上走,提壺去打酒。 逢店加一倍,遇花喝一鬥。 這一路上,他一共遇到店 5 次,遇到花 10 次,已知最後一次遇到的是花,他正好把酒喝光了。請 ...
  • 本系列文章為《編寫高質量代碼——改善Python程式的91個建議》的精華彙總。 首發於公眾號【Python與演算法之路】 關於導入模塊 Python的3種引入外部模塊的方式: 語句、 和 函數。其中前兩種比較常見。 在使用 時,應註意: 優先使用 或 有節制的使用 儘量避免使用 對於 ,如果無節制的使 ...
  • 本系列文章為《編寫高質量代碼——改善Python程式的91個建議》的精煉彙總。 利用assert語句發現問題 assert語句的基本語法如下: 其中, 是判斷語句,會返回True或False,當返回False時會引發AssertionError。 中的內容表示是可選的,用來傳遞具體的異常信息。 利用 ...
  • 1. 應用K-means演算法進行圖片壓縮 讀取一張圖片 觀察圖片文件大小,占記憶體大小,圖片數據結構,線性化 用kmeans對圖片像素顏色進行聚類 獲取每個像素的顏色類別,每個類別的顏色 壓縮圖片生成:以聚類中收替代原像素顏色,還原為二維 觀察壓縮圖片的文件大小,占記憶體大小 from sklearn. ...
  • REST:即 Representational State Transfer。(資源)表現層狀態轉化 。是目前最流行的一種互聯網軟體架構。它結構清晰、符合標準、易於理解、擴展方便, 所以正得到越來越多網站的採用。使用 REST 風格的請求方式,可以簡化 url,達到使用同一個 url 不同請求方式來 ...
  • HTTP 405 的錯誤提示:消息 JSP 只允許 GET、POST 或 HEAD。Jasper 還允許 OPTIONS 的解決方法 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...