2023年04月19日個人賽

2022-08-11 13:12:23 字數 1900 閱讀 2760

題意:這個題意就是給你乙個錯誤的排序方式,要求你在它的這個排序方式下判斷是否存在正確的執行結果。若存在正確的結果,則輸出-1,否則輸出乙個例子說明是錯誤的。題目的輸入是元素的個數n。

題解:這一題比較有意思,很容易判斷出只有當n=1 or n=2時執行結果是正確的,其餘的情況都是錯誤的。這樣我們就構造出乙個序列出來就可以了。

**:

#include#include

#include

#include

#define ll long long

using

namespace

std;

intmain()

else}}

return0;

}

題意:這一題的大概意思是給你乙個長度為n的int序列。你可以選擇其中任意兩個數對其分別進行+1和-1操作,問在進行若干次後,最多可存在多少個相同的數。

題解:對同乙個陣列裡面的兩個元素進行+1和-1操作,很容易想到的一點是它的元素和總是一定的,這是乙個突破點。這裡我們判斷元素的和是否能被n整除,如果能,則最多的個數就是n(說明一定存在某種方式將所有的元素變為一樣的),如果不能,就肯定存在乙個餘數,這時,我們就可以捨去這個元素,對其他的元素進行操作。則此時的元素個數就是n-1。

**:

#include#include

#include

#include

#define ll long long

using

namespace

std;

intmain();

int sum=0

;

for(int i=0;i)

if(sum%n==0

)else

return0;

}

題意:這一題的大概意思是k個人平均分n*k個橘子,特別的是每個人都有它們各自必須必須需要的乙個橘子,其他的沒有要求。

題解:這一題也是比較簡單的(悔不當初),

**:這裡我們只需要用乙個vis陣列記錄一下哪乙個橘子被分了就可以,然後依次輸出應有數量的橘子即可(同時特別關注該人特別需要橘子的編號這個需要特別判斷一下)。

**:

#include#include

#include

#include

#define ll long long

using

namespace

std;

intmain();

int vis[1000]=;

intt;

for(int i=0;i)

int len=0

;

for(int i=0;i)}}

cout

<}

return0;

}

題意:這一題的大概意思它定義了一種特別的數,其中這個數字包含的單個數字的種類的數量不超過2種,現在給你n需要你求出在[1,n]之中存在多少個這樣的數字。

題解:比賽想了半天就是沒看出這是乙個dfs,這裡我們可以這樣想,我們遍歷[0,9]中全部的2種數字的組合,然後將它們去排列組合,小於n就放入set(可以去重)中,最後輸出就可以了。

知識點:dfs 排列組合

**:

#include#include

#include

#define ll long long

using

namespace

std;

setst;

ll n;

void dfs(int a,int

b,ll num)

if(tb&&tb<=n)

}int

main()

}cout

<1

;

return0;

}

2023年04月25日個人賽

a romaji 題意 本題比較簡單,給你乙個字串,要你判斷字串中的每乙個子音字元後面是否有乙個母音字元。題解 簡單簽到題,模擬即可。include include include define ll long long using namespace std intmain else if f 1...

2023年04月05日 個人賽

題意 題意比較簡單,簡單描述一下就是乙個小朋友去排隊,他的前面至少有a個人,後面最多有b個人,求這個小朋友可能在的位置有幾個,輸出可能的數量。題解 簡單的模擬一遍即可 1 include2 include 3 include4 include5 define ll long long 6using ...

2023年1月17日sdut vj個人賽

題目鏈結 簽到題。include using namespace std const int n 1e6 10 int n,k int a n int main else maxx max maxx,cnt cout maxx endl return0 題目鏈結 找能裁剪的最大的正方形,邊長從1開始...