检测网站是否被挂黑链,珠海做网站三年多少钱,专业设计网站排名,网站自行备案http://codeforces.com/contest/876/problem/D 题意#xff1a;题意真是难懂#xff0c;就是给一串序列#xff0c;第i次操作会在p[x]#xff08;1xi#xff09;这些位置放上硬币#xff0c;然后从左到右观察#xff0c;如果第i个位置有硬币但第i1个位置没有硬币…http://codeforces.com/contest/876/problem/D 题意题意真是难懂就是给一串序列第i次操作会在p[x]1xi这些位置放上硬币然后从左到右观察如果第i个位置有硬币但第i1个位置没有硬币那么互换然后继续从第i1个硬币开始看。直到不需要交换需要计算出到终极状态需要多少步。 思路 模拟。 1 #includeiostream2 #includealgorithm3 #includecstring4 #includecstdio5 #includevector6 #includestack7 #includequeue8 #includecmath9 #includemap
10 #includeset
11 using namespace std;
12 typedef long long ll;
13 typedef pairint,int pll;
14 const int INF 0x3f3f3f3f;
15 const int maxn 3000005;
16
17 int n;
18 int p[maxn];
19 int a[maxn];
20 vectorint ans;
21
22 int main()
23 {
24 //freopen(in.txt,r,stdin);
25 while(~scanf(%d,n))
26 {
27 ans.clear();
28 memset(a,0,sizeof(a));
29 for(int i1;in;i) scanf(%d,p[i]);
30 int max_rightn;
31 int cnt0;
32 for(int i1;in;i)
33 {
34 a[p[i]]1;
35 if(p[i]max_right)
36 {
37 for(int jmax_right-1;j1;j--)
38 {
39 if(!a[j]) {max_rightj;break;}
40 else cnt--;
41 }
42 }
43 else
44 {
45 cnt;
46 }
47 ans.push_back(cnt1);
48 }
49 printf(1);
50 for(int i0;ians.size();i)
51 printf( %d,ans[i]);
52 printf(\n);
53 }
54 return 0;
55 } 转载于:https://www.cnblogs.com/zyb993963526/p/7679291.html