Codeforces Round #441 D. Sorting the Coins(模拟)

http://codeforces.com/contest/876/problem/D

题意:
题意真是难懂,就是给一串序列,第i次操作会在p[x](1<=x<=i)这些位置放上硬币,然后从左到右观察,如果第i个位置有硬币但第i+1个位置没有硬币,那么互换,然后继续从第i+1个硬币开始看。直到不需要交换,需要计算出到终极状态需要多少步。

 

思路:

模拟。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstring>
 4 #include<cstdio>
 5 #include<vector>
 6 #include<stack>
 7 #include<queue>
 8 #include<cmath>
 9 #include<map>
10 #include<set>
11 using namespace std;
12 typedef long long ll;
13 typedef pair<int,int> pll;
14 const int INF = 0x3f3f3f3f;
15 const int maxn = 300000+5;
16 
17 int n;
18 int p[maxn];
19 int a[maxn];
20 vector<int> 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 i=1;i<=n;i++) scanf("%d",&p[i]);
30         int max_right=n;
31         int cnt=0;
32         for(int i=1;i<=n;i++)
33         {
34             a[p[i]]=1;
35             if(p[i]==max_right)
36             {
37                 for(int j=max_right-1;j>=1;j--)
38                 {
39                     if(!a[j])  {max_right=j;break;}
40                     else cnt--;
41                 }
42             }
43             else
44             {
45                 cnt++;
46             }
47             ans.push_back(cnt+1);
48         }
49         printf("1");
50         for(int i=0;i<ans.size();i++)
51             printf(" %d",ans[i]);
52         printf("\n");
53     }
54     return 0;
55 }

 

转载于:https://www.cnblogs.com/zyb993963526/p/7679291.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268251.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 数据库实例启动关闭过程

-- -->Oracle 数据库实例启动关闭过程 -- /* Oracle数据库实例的启动&#xff0c;严格来说应该是实例的启动&#xff0c;数据库仅仅是在实例启动后进行装载。Oracle数据启动的过程被划分为 几个不同的步骤&#xff0c;在不同的启动过程中&#xff0c;我们可以对其实现不同的…

mysql求差集

mysql怎么求差集? mysql如何查询两个字段数不同的表中数据不一致的记录 一般可用NOT EXISTS&#xff08;非存在子句&#xff09;或 LEFT JOIN左&#xff08;右&#xff09;连接后所产生空字段值来筛选两表的差集 classinfo表 student表 1、NOT EXISTS not exists在比对字段…

C#判断字符串是否为数字字符串

在进行C#编程时候&#xff0c;有的时候我们需要判断一个字符串是否是数字字符串&#xff0c;我们可以通过以下两种方法来实现。 【方法一】&#xff1a;使用 try{} catch{} 语句。 我们可以在try语句块中试图将string类型的字符串变量转换为int类型&#xff0c;如果该字符…

SQLPLUS命令使用大全

SQL*PLUS命令的使用大全Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中&#xff0c;可以运行sql*plus命令与sql*plus语句。 我们通常所说的DML、DDL、DCL语句都是sql*plus语句&#xff0c;它们执行完后&#xff0c;都可以保存在一个被称为sql buffer的内存区域…

html5表单实现简单计算器

html5表单实现简单计算器 <!DOCTYPE html><html><head> <title>this is a html page</title></head><body> <form οninput"res.value n1.valueAsNumber * n2.valueAsNumber"> <input type"number" …

[举一反三]使用javascript转换字符串为dom对象(字符串动态创建dom)

前言&#xff1a; 在javascript里面动态创建标准dom对象一般使用&#xff1a; var obj document.createElement(div); 然后再给obj设置一些属性。 但是&#xff0c;在实际使用过程中&#xff0c;有些人可能会想&#xff0c;要是能这样创建标准的dom对象就好了 伪代码&#xff…

propattr区别和用法,以多选框为例

1.比较 相同点 : prop和attr作为jquery的方法都可以获取属性值; 不同点 : (1) 对于HTML元素本身就带有的固有属性&#xff0c;使用prop方法, attr获取checkbox的checked属性时选中的时候可以取到值,值为"checked"但没选中获取值就是undefined。 jq提供新的方法“prop…

20100506网络互联技术实验

请下载附件转载于:https://blog.51cto.com/network0546/310493

python学习笔记(15)循环设计

python学习笔记&#xff08;15&#xff09;循环设计 原链&#xff1a;http://www.cnblogs.com/vamei/archive/2012/07/09/2582435.html 注意&#xff1a;zip()在python2 3里面不一致 #第15讲 循环设计#循环在前面是有学习的&#xff0c;简单的循环for i in range(10):print (i*…

docker search 镜像关键词

查找镜像 docker search 镜像关键词 比如我要搜索nginx docker search nginx 参数说明&#xff1a; NAME: 镜像仓库源的名称 DESCRIPTION: 镜像的描述 OFFICIAL: 是否 docker 官方发布 stars: 类似 Github 里面的 star&#xff0c;表示点赞、喜欢的意思。 AUTOMATED: …

集群NAS+SSD如虎添翼

今天&#xff0c;集群NAS和基于文件的存储为什么会这么火&#xff1f;IDC提供的一些数据也许可以说明问题。从2005年到2011年&#xff0c;全球基于文件的存储年均增长率达到79.3%&#xff0c;而基于块级的存储年均增长率为31%。2008年是一道分水岭。在这一年&#xff0c;全球基…

C#3种常见的定时器(多线程)

总结以下三种方法&#xff0c;实现c#每隔一段时间执行代码&#xff1a; 方法一&#xff1a;调用线程执行方法&#xff0c;在方法中实现死循环&#xff0c;每个循环Sleep设定时间&#xff1b; 方法二&#xff1a;使用System.Timers.Timer类&#xff1b; 方法三&#xff1a;使用S…

在WORD中插入带圈的数字的序号

在WORD中可以通过插入符号的方式插入带圈的数字1至10&#xff0c;但超过10就没有办法了。常规也够 用了&#xff0c;但情况总有特殊的&#xff0c;如果不够再要插入11以上的怎么办&#xff1f;一般介绍使用“格式→中文版式→带圈字符”功能。但圈和圈内的数字总有不匹配的感觉…

005-JQuery之CSS

CSS位置尺寸CSS css(name|pro|[,val|fn]) &#xff1a;访问匹配元素的样式属性示例&#xff1a; 1 // 获取color样式属性的值 2 $(p).css("color"); 3 // 将所有段落的字体颜色设为红色并且背景为蓝色 4 $("p").css({ color: "#ff0011", backgro…

【NOIP2012】旅行计划

题解 双向链表加倍增。。。 正写着不一定能写对2333 终于写对了。。。 然而我的双向链表和别人的都不一样。。。 瑟瑟发抖。。。 代码 //by 减维 #include<cstdio> #include<iostream> #include<cstring> #include<queue> #include<cstdlib> #in…

扩展巴科斯范式

2019独角兽企业重金招聘Python工程师标准>>> 扩展巴科斯范式 维基百科&#xff0c;自由的百科全书 扩展巴科斯-瑙尔范式(EBNF)是表达作为描述计算机编程语言和形式语言的正规方式的上下文无关文法的元语法符号表示法。它是基本巴科斯范式(BNF)元语法符号表示法的一种…

20100519 学习记录:asp CreateFolder/上传附件

新增一个上传附件的功能。在网上找了一下&#xff0c;基本都是在化境HTTP上传程序基础上改的&#xff0c;灰常感谢这个源代码的开发者&#xff0c;深深鞠躬。不过这个代码要求在上传图片时&#xff0c;输入的文件夹必须是已存在的文件夹&#xff0c;不然就会出错&#xff0c;于…

洛谷P1420 最长连号

题目描述 输入n个正整数&#xff0c;&#xff08;1<n<10000),要求输出最长的连号的长度。&#xff08;连号指从小到大连续自然数&#xff09; 输入输出格式 输入格式&#xff1a; 第一行&#xff0c;一个数n; 第二行&#xff0c;n个正整数&#xff0c;之间用空格隔开。 输…