奮鬥群群賽8總結與心得,附上週所有錯誤小結

2021-08-08 01:40:10 字數 2939 閱讀 4217

t2t3

t4t5t6

本次題目暴枚較多,弄不好容易tle,掌握方法即可.

錯誤極多.最常見的是爆int,有的時候真的你在電腦上能好好執行,一放到評測機上就gg了.隱性的情況一定要注意了.還有當寫for迴圈的時候修改迴圈變數一定要改全!三個字母都要改!for(int i=1;i<=n;i++)這句話裡三個i都要改!我手殘改了前面兩個,執行出錯,我怎麼都找不到問題.重要的事情要說三遍!最後記得輸入矩陣的時候n和m不要打反,也很難找出的錯誤,搞了我半小時.好好想想思考方法,總有辦法的.

輸入n和k,如果能找到k個不為1的數,它們相乘等於n,則輸出這k個數(spj,一種方法);如果找不到,輸出-1.

暴枚+遞迴,從2開始找到n最小的因數i,找到之後把n/i繼續操作,直到n為1還是沒有k個數或者已經找到第k個數為止.

#include

using

namespace

std;

int n,k,a[25];

void fenjie(int n,int m)//m表示分解到第幾個數

//沒有k個數

else

if (m==k)

for (i=2;i<=n;i++) if (n%i==0) }

int main()

在乙個陣列中任意找k個數求和,和必須是奇數,輸出最大的和.

陣列裡是有負數的.首先把所有正數加起來,然後看看是不是奇數,如果不是奇數,就在所有的數里找到絕對值最小的奇數,把它減掉即可.

#include

using

namespace

std;

int a[100010];

int main()

if (he&1) cout

cout

《給出乙個小寫英文本母組成的字串,把裡面所有的字元進行不斷地入棧,出棧操作,輸出這樣操作出棧的字串當中字典序最小的乙個.

最關鍵的一點是每次找最小的字元出棧.我用乙個字元陣列儲存從尾到頭最小的字元.然後對字串入棧,當棧不為空並且棧頂字元小於或者等於當前最小字元,就讓它出棧.

#include

using

namespace

std;

stack

t;string s;char final[100010];

int main()

if (p==l) break;

t.push(s[p]);

p++;

}}

對於一棵二叉查詢樹來講,你一定能用下面這樣的**查詢到每乙個值.

bool find(treenode t, int x)

find(root, x);

可是不是所有的數都是二叉查詢樹,輸入一棵樹的所有結點以及其子節點情況(沒有輸入-1),輸出用上述查詢方法查詢失敗的次數.

dfs,**放在下面,但是不會思路.

#include

using

namespace

std;

int n,x[100010],l[100010],r[100010],answer=0;bool visible[100010];

set node_visible;

void searching_mistakes(int root,int left,int right)

int main()

for (i=1;i<=n;i++) if (visible[i]==0) searching_mistakes(i,0,2147483647);

for (i=1;i<=n;i++) if (node_visible.find(x[i])==node_visible.end()) answer++;

cout

《輸入乙個陣列a[n],以下q個詢問,每個詢問有p,k兩個值,對於每個詢問每次讓p=p+a[p]+k,直到p>n為止,輸出操作次數.

這題肯定是暴枚了.

#include

using

namespace

std;

int a[100010],p,k;

int main()

printf("%d\n",t);

}}

tle了.我們可以用什麼方法來儲存呢?我們可以定義乙個二維陣列large_master[p][k],讓large_master[p][k]儲存詢問p,k的值.如果這個值已經有了,我們就可以直接輸出;如果沒有,我們就定義乙個dfs,返回dfs(p+a[p]+k,k)+1.你問我陣列的大小要炸啊!用空間換時間沒有必要這麼徹底,我們可以儲存到sqrt(n)為止.我故意把函式名,陣列名定義得很長,看起來好像我寫了很多.可以把時間複雜度縮到n*sqrt(n).

#include

using

namespace

std;

int a[100010],n,q,p,k,large_master[100010][400],pingfanggen;

int addpoints(int p,int k)

int main()

}

一條線上有很多老鼠,有很多老鼠洞.突然老鼠們受到了驚嚇,紛紛逃回洞.每個洞有自己能夠裝下老鼠的最大個數,輸入每個老鼠的座標,洞的座標以及洞的最大安放數,輸出老鼠逃回洞最少要走的距離.

不要問我思路.

#include

using namespace std;

typedef long long ll;

const ll boss=5000;

struct holeh[boss+10];

intx[boss+10],q[boss+10],l,r;

ll dp[boss+10][boss+10],s[boss+10];

bool cmp(hole a,hole b)

cout}

奮鬥群群賽14總結與心得附上週總結與目標

t2t3 t4t5 t6t7 前四題很水?我居然不會。比賽的時候真的毒,我比賽的網上不去,當我終於寫完e題,網炸了,然後我沒能提交。上週小錯不斷,什麼bug都有。我在i的迴圈裡套i的迴圈我竟然檢查了1個小時沒檢查出來!完了。下週目標ak。就這樣,我隨便說說而已。乙個檸檬必須搭配兩個蘋果和四個梨,給出...

奮鬥群群賽7總結與心得

t2t3 t4t5 本次人品很好,老師發了一次福利,五道題都很水 我應該沒有資格說這種話吧 對於乙個大於1的正整數,輸出它最多能被分解成多少個質數之和,以及這些質數.明顯的水題吧.對於偶數,全部輸出2 對於奇數,輸出很多2加上乙個3就可以了.include using namespace std i...

奮鬥群群賽 4

t2arpa and an exam about geometry t3five dimensional points t4polycarpus dice總結 t1位置所在 有一排觀眾席,有n個人,當t 1時第乙個人站起來,t 2時第二個人站起來,t 3時第三個人站起來 到k位置,都是站起來,但是k...