FYN OI 奮鬥之路10

2021-08-08 19:42:58 字數 3212 閱讀 4216

(educational codeforces round 14)

有一串01序列,除非只有乙個數,否則若只有乙個0,輸出「yes」,反之輸出「no」。

簡單的計數,特判n=1的情況。

#include

using

namespace

std;

int main()

if((cnt==n-1&&n!=1)||(n==1&&cnt==1)) cout

<<"yes";

else

cout

<<"no";

}

給出一串字串,如果字串左右完全對稱,輸出」yes「,否則輸出」no」。

從0-字串長度除以2處依次列舉當前位置的字元,再分類判斷,題目本身不難,但判斷哪乙個字元是對稱的有點坑2333.

#include

using

namespace

std;

int main()

}cout

<<"tak";

}

輸入一串字串代表乙個數字(可能有前後導零),輸出這個數字用科學計數法表示的結果。

第一眼看到這題還以為是思維題,然後就記錄了小數點的位置去分類討論,做了好久才做出來。應該有比較好的構造解法,這裡貼出我的分類ac**。

#include

using

namespace

std;

int main()

if(pos==-1&&s[i]!='0') t1++;

if(pos!=-1&&i!=pos&&s[i]!='0') t2++;

}if(t1==0&&t2==0) cout

<<0;

else

if(!dian)

for(int i=n-1;i>=0;i--)

for(int i=cnt1;icout

<<".";

}if(n-1-cnt1!=0)cout

<<"e"

<1-cnt1;

}else

if(pos==n-1)

for(int i=n-2;i>=0;i--)

for(int i=cnt1;i<=n-cnt2-2;i++)

if(n-2-cnt1!=0)cout

<<"e"

<2-cnt1;

}else

if(t2==0)

for(int i=pos-1;i>=0;i--)

for(int i=cnt1;icout

<<".";

}if(pos-1-cnt1!=0)cout

<<"e"

<1-cnt1;

}else

if(pos==0)

for(int i=n-1;i>=0;i--)

for(int i=1+cnt1;icout

<<".";

}if(cnt1+1!=0)cout

<<"e-"

<1;

}else

if(t1==0)

for(int i=n-1;i>pos;i--)

for(int i=pos+cnt1+1;icout

<<".";

}if(cnt1+1!=0)cout

<<"e-"

<1;

}else

for(int i=n-1;i>=pos+1;i--)

for(int i=cnt1;icout

<<".";

}for(int i=pos+1;icout

<<"e"

<1-cnt1;

}}

有n個數字和m種交換方法,每一種方法可以將索引為a的數字與索引為b的數字交換,交換次數沒有限制,問最後能交換成的字典序最小的序列。

比較簡單的並查集,但因為比較字典序部分耗時比較多,雖然給了5秒,不優化仍然會tle,因此需要對並查集進行優化,用vector或優先佇列都可以,這裡貼出我用優先佇列優化的ac**。

#include

using

namespace

std;

const

int maxn=1000010;

int p[maxn],fa[maxn],ans[maxn],num[maxn];

int n,m,a,b,root,cnt;

priority_queue que1[maxn],que2[maxn];

bool visit[maxn];

int find(int x)

return fa[x];

}void usd(int a,int b)

}int main()

for(int i=1;i<=m;i++)

for(int i=1;i<=n;i++)

que1[root].push(p[i]);

que2[root].push(-i);

}for(int i=1;i<=cnt;i++)

}for(int i=1;i<=n;i++)

}

有n個數與m組詢問,從n個數中任取兩個數相乘,問能有幾種組合使得乘積大於等於詢問數,對於每組詢問輸出乙個答案。

拿到題目首先想到可能是字首之類的預處理,因為詢問數很多並且詢問本身並不大,因此可以暴力預處理出當前序列中小於等於當前值的數量有多少,之後對於每一組詢問輸出總數減前乙個即可。

#include

using

namespace

std;

typedef

long

long

int ll;

const

int maxn=3000010;

ll a,n,m,q;

ll cnt[maxn]=,ans[maxn]=;

ll num;

void init()

for(int i=1;i*ifor(int j=i;i*jif(i==j) ans[i*j]+=cnt[i]*(cnt[i]-1);

else ans[i*j]+=2*cnt[i]*cnt[j];}}

for(int i=maxn-2;i>=1;i--)

num=(ll)n*(n-1)-ans[1];

}int main()

return

0;}

前端小白奮鬥之路開始了

一向對操作性的東西感興趣,即使腦子不夠使,但靜下心來努力還是有希望的,那麼,前端小白的奮鬥之路就要開始咯。目前狀況 html css有點基礎,但我覺得遠遠不夠,並且做專案的時候缺乏經驗,不容易想到簡單規範的方法。另外,有接觸過資料庫和php,但是完全不紮實,只是很表面的東西。近期目標 1 html ...

10個方法助你少奮鬥10年

1 努力工作要努力,隨隨便便過日子過四五年也是過,稍微努力的過四五年也是過,努力的過四五年也是過,何不努力好好的幹。如果努力的過好畢業後的四五年,這對我們以後的人生非常有幫助 2 虛心學習多與比自己大的人 長輩 成功人士交流學習,要虛心聽取 認真分析他們的意見和建議,以免自己以後走彎路。3 自由出來...

開啟全新奮鬥的程式設計師之路

我,乙個985學校大三在校生,就讀計算機學院,專業是網路與資訊保安,乙個普普通通的轉專業生,能力一般,單身.由於各種原因,我以高於我們學校4分的成績光榮的進入了我們學校的末尾專業 農業機械化,大一上的時候被轉專業的氛 圍感染,在渾渾噩噩的度過了大一上的半學期後,開始發奮圖強,每天宿舍 食堂 自習室三...