最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

CodeforcesRound#252(Div.2)-C,D_html/css

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 15:53:46
文檔

CodeforcesRound#252(Div.2)-C,D_html/css

CodeforcesRound#252(Div.2)-C,D_html/css_WEB-ITnose:C題就是一個(gè)簡(jiǎn)單的模擬,首先給每個(gè)人兩個(gè)。然后把剩下的都給一個(gè)人就好了。 給的時(shí)候蛇形給。 #include#include#include#include#include#includeusing namespace std;#define LL __int64#define maxn 330000int ma
推薦度:
導(dǎo)讀CodeforcesRound#252(Div.2)-C,D_html/css_WEB-ITnose:C題就是一個(gè)簡(jiǎn)單的模擬,首先給每個(gè)人兩個(gè)。然后把剩下的都給一個(gè)人就好了。 給的時(shí)候蛇形給。 #include#include#include#include#include#includeusing namespace std;#define LL __int64#define maxn 330000int ma

C題就是一個(gè)簡(jiǎn)單的模擬,首先給每個(gè)人兩個(gè)。然后把剩下的都給一個(gè)人就好了。

給的時(shí)候蛇形給。

#include#include#include#include#include#includeusing namespace std;#define LL __int64#define maxn 330000int main(){ int n,m,k; while(~scanf("%d%d%d",&n,&m,&k)) { int leap=1; int stx=1; int sty=1; int ms=n*m-(k*2)+2; printf("%d",ms); while(ms--) { printf(" %d %d",stx,sty); sty+=leap; if(sty<1||sty>m) { if(sty<1)sty=1; if(sty>m)sty=m; stx++;leap=-leap; } } cout<m) { if(sty<1)sty=1; if(sty>m)sty=m; stx++;leap=-leap; } printf("%d %d\n",stx,sty); sty+=leap; if(sty<1||sty>m) { if(sty<1)sty=1; if(sty>m)sty=m; stx++;leap=-leap; } } } return 0;}
D:首先根據(jù)環(huán),把每一個(gè)環(huán)分成一組。記錄下此時(shí)至少需要交換all次,才能回歸到恒等排列。

1,如果all大于p。那么我們就應(yīng)該把a(bǔ)ll減少。

對(duì)于一個(gè)環(huán),任意兩個(gè)點(diǎn)交換都可以把環(huán)分成兩份,all-1;

對(duì)于每次減少,我們尋找環(huán)的最小值最小的環(huán),然后在這個(gè)環(huán)中尋找最小值,然后交換這兩個(gè)點(diǎn)。

2,如果all小于p。那么我們應(yīng)該把a(bǔ)ll增大。

那么我們就可以把1號(hào)節(jié)點(diǎn)和任意節(jié)點(diǎn)交換,來(lái)達(dá)到增大all的目的。

注意,1號(hào)節(jié)點(diǎn)不和本身的環(huán)交換。并且1號(hào)節(jié)點(diǎn)和任意一個(gè)環(huán)只交換一次。

#include#include#include#include#include#includeusing namespace std;#define LL __int64#define maxn 3300int a[maxn];int b[maxn];int vis[maxn];vectorvec;vector< vector >ans;struct list{ int x,y;} node;vectorpr;bool cmp(vectora,vectorb){ return a[0]b.x; }}tt;priority_queueque;int main(){ int n,m; while(~scanf("%d",&n)) { for(int i=1; i<=n; i++) { scanf("%d",&a[i]); b[i]=a[i]; } scanf("%d",&m); memset(vis,0,sizeof(vis)); vec.clear(); ans.clear(); int all=0; for(int i=1; i<=n; i++) { if(vis[i])continue; int j=i; vec.clear(); while(b[j]!=j&&vis[j]==0) { vec.push_back(j); vis[j]=1; j=b[j]; } if(vec.size()) { // sort(vec.begin(),vec.end()); ans.push_back(vec); all+=vec.size()-1; } } sort(ans.begin(),ans.end(),cmp); pr.clear(); if(all<=m) { all=m-all; if(ans.size()==0) { node.x=1; for(int i=2; i<=all+1; i++) { node.y=i; pr.push_back(node); } } else { node.x=1; int j=0; if(ans[0][0]==1)j++; for(int i=2; i<=n&&all>0; i++) { if(b[i]==i) { all--; node.y=i; pr.push_back(node); } if(ans.size()>j&&ans[j][0]==i) { all--; node.y=i; j++; pr.push_back(node); } } } } else { int qian=all; all=all-m; int i=0; while(!que.empty())que.pop(); for(i=0;i0;j++) { if(minn>ans[i][j]) { minn=ans[i][j]; st=j; } } node.y=minn; all--; pr.push_back(node); vec.clear(); minn=9999; vec.push_back(ans[i][st]); for(int j=1;j1) { ans.push_back(vec); tt.index=ans.size()-1; tt.x=vec[0]; que.push(tt); } vec.clear(); vec.push_back(ans[i][0]); for(int j=st+1;j1) { ans[i]=vec; tt.index=i; tt.x=vec[0]; que.push(tt); } i++; } } cout<

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

CodeforcesRound#252(Div.2)-C,D_html/css

CodeforcesRound#252(Div.2)-C,D_html/css_WEB-ITnose:C題就是一個(gè)簡(jiǎn)單的模擬,首先給每個(gè)人兩個(gè)。然后把剩下的都給一個(gè)人就好了。 給的時(shí)候蛇形給。 #include#include#include#include#include#includeusing namespace std;#define LL __int64#define maxn 330000int ma
推薦度:
標(biāo)簽: d div round
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top