題意:題意比較簡單,簡單描述一下就是乙個小朋友去排隊,他的前面至少有a個人,後面最多有b個人,求這個小朋友可能在的位置有幾個,輸出可能的數量。
題解:簡單的模擬一遍即可
**:
1 #include2 #include3 #include4 #include5
#define ll long long
6using
namespace
std;
7int
main()15}
16 cout17return0;
1819 }
題意:這一題的題意比較簡單:題目給你n個長度長度為k的數字,要求讓你對其進行排列組合,這裡要注意的是所有的數字在進行排列組合的的規則是一樣的。要你求其中最大值減去最小值的差最小。
題解:這一題有很多解法比如利用dfs求出所有的排列種類,記錄每種排列中的最值差,最後求其最小值即可,還有乙個簡便的方法:利用:next_permutation(a, a + n)函式它的作用是求出長度為n的陣列a中所有的排列的秦情況,這種比dfs簡便多了,然後就是求出每種排列方式下的最值並求差即可。
1 #include 2 #include 3 #include 4 #include 5using
namespace
std;
6const
int nk_max = 44;7
const
int inf = 0x3fffffff;8
intn, k;
9char
number[nk_max][nk_max];
10int
bit[nk_max], sum, num_max, num_min, ans;
11int
main()
16for(int i = 0; i < k; i ++)
20 ans = inf;//
初始化為極大值
21do //
化成 int 型
28 num_max =max(num_max, sum);
29 num_min =min(num_min, sum);30}
31 ans = min(ans, num_max - num_min);//
更新最後大的答案
32 } while(next_permutation(bit, bit + k));//
求全排列
33 printf("
%d\n
", ans);34}
35return0;
36 }
題意:這一題也是一道簡單的題目,主要就是要看清楚它的變化的規則:當單詞全為大寫的時候,就將所有的字母變為小寫。當單詞的第乙個字母為小寫的時候,後面的字母全為大寫,將第乙個字母改為大寫,將之後的字母改為小寫。其餘其他的形式不要改變,在這個題中要注意細節。
題解:模擬,排除每種情況即可。
**;法一:
1 #include2 #include3 #include4 #include5
#define ll long long
6using
namespace
std;
7int
main() else
if(ptr[i]>='
a'&&ptr[i]<='z'
)17}18
if(an==0&&f!=0||ptr.length()==1
)else
if(ptr[0]>='
a'&&ptr[0]<='z'
)24for(int i=1;i)27}
28 cout<29return0;
3031 }
1 #include2 #include3 #include4#define ll long long
5using
namespace
std;
6ptr)11}
12return1;
13}14ptr)19}
20return ptr[0]>='
a'&&ptr[0]<='z'
;21}22
intmain() else
31 }elseelse
42 }else
46} 47}
48}49}
50 cout<51return0;
52 }
題意:大概的意思就是給你一串數,要你判斷這串數中有幾對數可以相加之和為 0
題解:由於資料範圍比較小,我們可以用陣列來計算每個數出現的次數,可以把每個元素都加上10,就可以將他們全部化為正數,在進行判斷的時候,我們只需記錄i 與20-i的乘積之和即可,但要注意對特殊情況的判斷。
**:
1 #include2#define ll long long
3using
namespace
std;
4 ll ans=0;5
intmain() ;
9for(int i=0; i)
1314
for(int i=0; i<=10; i++) else21}
22}23 cout24return0;
25 }
題意:這一題其實是乙個排列組合的問題,只不過加了乙個限制,男生的人數不是少於4,女生的人數不少於1,組成的團隊的人數為t。
題解:這裡唯一要注意的就是組合數的計算方法,這裡先達標打表楊輝三角,組合數和楊輝三角形表是一一對應的,
**:法一:
1 #include2 #include3 #include4 #include5
#define ll long long
6using
namespace
std;
7 ll f[110][110];8
void
9 memset(f,0,sizeof
(f));
10for(int i=0; i<=30; i++)
14for(int i=1; i<=30; i++) 18}
19}2021
intmain() else
33 printf("
%i64d\n
",sum);34}
35return0;
36 }
法二:
1 #include2 #include3 #include4#define ll long long
5using
namespace
std;
6 ll conb[250][250];7
//(n<25,m<25)
8 ll f[110][110];9
void
10 memset(f,0,sizeof
(f));
11for(int i=0; i<=30; i++)
15for(int i=1; i<=30; i++) 19}
20}21 ll sum=0;22
intmain()
29 cout30return0;
31 }
2023年04月25日個人賽
a romaji 題意 本題比較簡單,給你乙個字串,要你判斷字串中的每乙個子音字元後面是否有乙個母音字元。題解 簡單簽到題,模擬即可。include include include define ll long long using namespace std intmain else if f 1...
2023年04月19日個人賽
題意 這個題意就是給你乙個錯誤的排序方式,要求你在它的這個排序方式下判斷是否存在正確的執行結果。若存在正確的結果,則輸出 1,否則輸出乙個例子說明是錯誤的。題目的輸入是元素的個數n。題解 這一題比較有意思,很容易判斷出只有當n 1 or n 2時執行結果是正確的,其餘的情況都是錯誤的。這樣我們就構造...
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開始...