2020天梯賽模擬賽

2021-10-10 14:20:31 字數 4515 閱讀 6563

#include

using

namespace std;

intmain

(void

)

#include

using

namespace std;

intmain

(void

)

#include

using

namespace std;

intmain

(void

) cout << a <<

" "<< b << endl;

return0;

}

#include

using

namespace std;

intmain

(void

) cout << flag <<

" "<< res << endl;

return0;

}

#include

using

namespace std;

int sco[

105]

, acc[

105]

;int

main

(void

)for

(int i =

1; i <= m; i++

)int t, res;

while

(n--)}

cout << res << endl;

}return0;

}

密碼可能會有空字元,所以需要讀入一行

#include

using

namespace std;

int sco[

105]

, acc[

105]

;string s;

intmain

(void

)elseif(

isalpha

(s[i]))

else

if(s[i]

=='.'

)else}if

(len >=

6&& f1 && f2 && f3)

puts

("your password is wan mei.");

else

if(len <6)

puts

("your password is tai duan le.");

else

if(f1 ==0)

puts

("your password is tai luan le.");

else

if(f3 ==0)

puts

("your password needs shu zi.");

else

puts

("your password needs zi mu.");

}return0;

}

注意有字首0時,要輸出字首0

#include

using

namespace std;

typedef

long

long ll;

char s[

1005

], num[15]

;bool

judge

(ll x)

return1;

}int

main

(void

) ll numb =0;

for(

int j =

0; j < k; j++)if

(judge

(numb))}

if(flag ==0)

cout <<

"404"

<< endl;

return0;

}

答案需要四捨五入輸出

#include

using

namespace std;

typedef

long

long ll;

bool st[

1005];

int ti[

1005];

intmain

(void)if

(op[0]

=='e'

&& st[id]==1

)if(id ==0)

}return0;

}

給出入棧順序,判斷出棧順序是否合法?

大體思路就是用棧來模擬一下,是否能夠以這種順序輸出。

每次按順序放入元素,如果棧頂元素等於出棧順序的元素,就出棧,否則繼續放入元素

如果最後棧為空,說明出棧順序合法

#include

using

namespace std;

stack<

int> stk;

int a[

1005];

intmain

(void

)for

(int i =

1; i <= n; i++

) idx =1;

// 模擬是否可以按照給定序列出棧

for(

int i =

1; i <= n; i++

)while

(stk.

size()

&& stk.

top(

)== a[idx])}

cout <<

(stk.

size()

==0?"yes"

:"no"

)<< endl;

}return0;

}

單純的模擬,結構體排序

#include

using

namespace std;

const

int n =

1e4+5;

struct node a[n]

;bool

cmp(node a, node b)

intmain

(void)}

sort

(a +

1, a + n +

1, cmp)

;for

(int i =

1; i <= n; i++

)return0;

}

用一維陣列來儲存能拿到23分。因為有1000個節點,考慮最複雜的情況,最多會有1000層,而用一維陣列來儲存的話需要 2

1000

2^21

000 個節點

可以想到使用結構體:用val 表示節點值,lson 表示左兒子的索引值,rson 表示右兒子的索引值

struct node  t[n]

;

25分**

#include

using

namespace std;

typedef

long

long ll;

const

int n =

1e4+

5, inf =

0x3f3f3f3f

;struct node t[n]

;int idx =1;

// maxv表示最深的層數

int maxv =-1

, res;

// 遞迴給樹賦值

void

dfs1

(int x,

int val,

int dept)

else

if(val <= t[x]

.val)

dfs1

(t[x]

.lson, val, dept +1)

;}else

dfs1

(t[x]

.rson, val, dept +1)

;}}// 遞迴搜尋答案

void

dfs2

(int x,

int dept)

if(maxv - dept <2)

if(t[x]

.lson !=-1

)dfs2

(t[x]

.lson, dept +1)

;if(t[x]

.rson !=-1

)dfs2

(t[x]

.rson, dept +1)

;}intmain

(void

)dfs2(1

,1);

cout << res << endl;

return0;

}

2-4實在是不想寫了,以後有機會再補上吧

2023年天梯賽補題報告

l1 3調和平均 10分 這題用陣列會被扣一分,不用陣列就能做對,不知道為啥.include using namespace std intn double res 0 int main res 1.0 n res 1.0 res printf 2lf res l1 6 吃火鍋 15分 string...

2016天梯模擬賽 高階題解

l2 005 集合相似度 題目的意思是要求兩個集合的交集中互不相同元素的個數和兩個集合並集中互不相同的元素的個數 先求交集中互不相同的元素,然後用兩個集合互不相同元素個數的和減去,就是並集中的個數 include include include include include include inc...

2023年天梯賽 模擬賽 L1 7 谷歌的招聘

本題要求你程式設計解決乙個更通用的問題 從任一給定的長度為 l 的數字中,找出最早出現的 k 位連續數字所組成的素數。輸入在第一行給出 2 個正整數,分別是 l 不超過 1000 的正整數,為數字長度 和 k 小於 10 的正整數 接下來一行給出乙個長度為 l 的正整數 n。在一行中輸出 n 中最早...