個人選拔賽1總結

2022-08-26 06:54:07 字數 3830 閱讀 2980

比賽鏈結

今天又全跪了,0題,我想哭,不過比賽就是這樣,生活還得繼續,不能放棄,真的,沒關係,好好總結,以後多做總結,多看看以前做的題,溫故而知新,

手腦要配合一起思考,每天總結當天的收穫,**不足要加以改進,嚴格對待自己的缺點,每天與自己比,不要和別人比,每個人的情況都不相同,每天要贏自己一把,

注意休息,注意身體。

這次比賽有兩道題我做過,

1008題即hdu3833題 這題做過,已經記不清這題是自己做的還是在網上搜的了。

題目鏈結

這次我開始是想用hash來遍歷的,不過遍歷要三重迴圈,但是當時沒看到 the latter is a permutation of 1 to n.認為ai可能很大,就放棄hash了

那時覺得二分比較好(n*nlog(n))的複雜度,不過也超時,

正確的方法是用hash記錄每個數的位置,hash【a【i】】=i  因為a【i】是1到n的數n<=10000;

再看hash【】是否在i j 範圍內。

二分超時**,此刻,我覺得這**不止n*n*log(n)了,它還有個排序,我太天真了。加個排序還不如乙個for直接找。

#include

#include

#include

#include

using namespace std;

int a[10010],b[10010];

int two(int i,int j,int n)

else

}return 0;

}int main(void)

else if(flag1&&s1[i]=='.')

else if(flag1&&s1[i]=='\0')

else

if(flag2&&s2[i]=='0')

else if(flag2&&s2[i]=='.')

else if(flag2,s2[i]=='\0')

else

if(flag1==0&&flag2==0)

break;}}

else if(flag1)

else if(flag1&&s1[i]=='.')

else

break;}}

else if(flag2)

else if(flag2&&s2[i]=='.')

else

break;}}

//printf("%s %s\n",s1,s2);

if(f1==f2)

else

}return 0;

}後來想想沒有必要要s1和s2陣列,因為新的處理前導0和『-』後的字串,一定延後於前面的陣列。

看**#include

#include

#include

#include

using namespace std;

char a[100000],b[100000];

//char s1[100000],s2[100000];

int main(void)

else if(flag1&&a[i]=='.')

else if(flag1&&a[i]=='\0')

else

if(flag2&&b[i]=='0')

else if(flag2&&b[i]=='.')

else if(flag2,b[i]=='\0')

else

if(flag1==0&&flag2==0)

break;}}

else if(flag1)

else if(flag1&&a[i]=='.')

else

break;}}

else if(flag2)

else if(flag2&&b[i]=='.')

else

break;}}

//printf("%s %s\n",s1,s2);

if(f1==f2)

else

}return 0;

}網上看了一些**,有些沒有處理負數即 -0和0,-0010 -10,也ac了,不過他處理前導0字尾無效0的方法比較好。

看**#include

#include

#include

int main()

int k=j;

while(a[j])

j=0;//對a陣列刪除前面輸入的零,e.g00001==1

while(b[j]=='0')

k=j;

while(b[j])

//對b陣列刪除前面輸入的零

j=0;

if(strchr(c,'.'))//字串判斷函式,如果c字串中含有'.'則返回'.'的位置指標,否則返回null

j--;

while(c[j]=='0')

//刪除小數點後面的零,e.g 123.000=123.00000000

if(c[j]=='.')

c[j]='\0';//刪除小數點,e.g 123.0000=123

}j=0;

if(strchr(d,'.'))

j--;

while(d[j]=='0')

if(d[j]=='.')

d[j]='\0';

}//類似以上處理

/*if(strlen(c)!=strlen(d))

printf("no\n");//判斷長度是否相等

else//比較

i++;

}if(t==0)

else

}*/if(strcmp(c,d)==0)

printf("yes\n");

else

printf("no\n");

memset(a,0,sizeof(a));

memset(b,0,sizeof(b));

memset(c,0,sizeof(c));

memset(d,0,sizeof(d));

}//system("pause");

return 0;

}這題的資料應該是按常識來的例如是不會出現-0 0  -0010 10 這樣的資料的。也不會出現0010 10這樣的資料

又看了只處理小數點後面無效的0的也過了。

看**#include

#include

#include

using namespace std;

char a[100000],b[100000];

void change(char s)

}if(s[len-1] == '.')

s[len-1] = '\0';

}int main()

return 0;

}對於這題只要處理小數點後面的無效的0。就可以了。

1002題對應hdu1396題

題目鏈結

這個是我第乙個開始做的,看到它的時候,覺得它明顯不難,因為只是數個三角形而已,所以就第乙個做它,當時太急了,想了一下就開始做了

根本沒有考慮這樣做是否正確,還有沒有其他的想法,導致錯了盲目改,改了又發現又有地方沒有考慮到,做題要做到穩中求快,別一味求快,這樣搞不好浪費的時間更多。

這題浪費了我很多時間,導致做其他題目沒有時間,更加緊張,

比完後去吃飯的路上,我又想了想這題,想到我是不是把正立的三角形與倒立的三角形分開考慮呢。

今天用這種方法想了一下a了,本來這次比賽上面三個題目是完全可以a的,以後做題要穩中求勝,做到一a。

**#include

#include

int main(void)

}for(i=n-1;i>=1;i--,i--)

}printf("%d\n",s);

}return 0;

}

選拔賽總結

時間限制 1 sec 記憶體限制 512 mb 提交 18 解決 9 提交 狀態 討論版 命題人 admin 題目描述 手機端qq推出了貼表情的新功能,復讀機勢力再次猖狂起來,她們把表情貼的到處都是!裙主決定把被復讀次數最多的表情從聊天記錄中刪去。聊天框是乙個大小為n x m的黑白點陣。背景色是白色...

選拔賽 旅遊

傳送門 首先有3種風景點,因此對應就有8種狀態 狀態表示的是到某個點經過的風景點有哪些 到每個點都有8種狀態,記錄狀態的話用的是dis陣列的第二維 將第二維j轉化為乙個二進位制數對應有3位,第一位表示的是a類風景點的狀態,第二位表示的是b類風景點的狀態,第三位表示的是c類風景點的狀態,對應的數字若是...

SDUT 2012省賽選拔賽1

a bfs 優先佇列。第一天只能感染defence小於等於1的並且與之連線的機器,第二天只能感染defence小於等於2的並且與之連線的機器.依次往後推。include include include include define maxn 505 using namespace std int g...