【自定义】抢妹子大作战
题目链接https://www.luogu.org/problemnew/show/U25598
这个题是我昨天在补HDU5361时根据它的优化方法想出来的一道题。我写的标解是并查集。
题意
有n个椅子n个人,每个人都有个目标椅子,但是如果目标椅子已经被人抢了,就继续往后找。n<=10^7
输出最后每把椅子上做的是谁。
分析
开一个并查集,pos=find(i)代表第i把椅子右边最近的空椅子。初始时所有的椅子都是空的所以p[i]=i,最近的时它本身。
当第i把椅子被选了以后,则更新p[find(i)]=find(i+1)。
代码如下
![](/assets/blank.gif)
![](/assets/blank.gif)
1 #include <cstdio> 2 #include <algorithm> 3 #include <cstring> 4 #include <iostream> 5 6 using namespace std; 7 const int maxn=10000000+10; 8 int a[maxn],v[maxn],p[maxn]; 9 int T,n; 10 int find(int x){ 11 return p[x]==x?x:p[x]=find(p[x]); 12 } 13 int main(){ 14 // freopen("out.txt","r",stdin); 15 // freopen("out2.txt","w",stdout); 16 scanf("%d",&T); 17 for(int t=1;t<=T;t++){ 18 scanf("%d",&n); 19 memset(v,0,sizeof(v)); 20 for(int i=0;i<=n+2;i++)p[i]=i; 21 for(int i=0;i<=n;i++){ 22 scanf("%d",&a[i]); 23 } 24 bool ok=1; 25 26 for(int i=0;i<=n;i++){ 27 int pos=find(a[i]); 28 // cout<<i<<" "<<pos<<endl; 29 if(pos>n){ 30 ok=0; 31 break; 32 } 33 v[pos]=i; 34 p[pos]=find(pos+1); 35 } 36 if(!ok){ 37 printf("-1"); 38 } 39 else{ 40 for(int i=0;i<=n;i++) 41 printf("%d ",v[i]); 42 } 43 printf("\n"); 44 } 45 return 0; 46 }
View Code
转载于:https://www.cnblogs.com/LQLlulu/p/9033844.html
【自定义】抢妹子大作战相关推荐
- 2018,抢票大作战
寒冬腊月,雾霾笼罩,又到了抢票的季节! 抢票资源 了解更多抢票信息.软件及技巧,请加群:417633743 抢票记录 2018.1.17 多次失败后,终于抢到了有座的了. 2017.12.29 今天进 ...
- Expo大作战(十二)--expo中的自定义样式Custom font,以及expo中的路由RouteNavigation
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- 一起忙Day大作战,抢戴尔显示器!
申耀的科技观察 读懂科技,赢取未来! 忙Day大作战 又是新的一周,你的工作忙碌指数如何?有没有爆表? 小戴对"忙碌"的辛苦感同身受,也对"忙碌"的价值.工作的 ...
- Expo大作战(三十)--expo sdk api之Permissions(权限管理模块),Pedometer(计步器api)
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Expo大作战(十九)--expo打包后,发布分用程序到商店的注意事项
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- 《球球大作战》游戏优化之路(上)
自从2015年<球球大作战>发布以来,现已拥有五亿多的玩家.如此庞大的玩家群体,对游戏的画面,性能要求是非常高的.在Unite Shanghai 2019大会中,<球球大作战> ...
- 转dem_约会大作战:真那离开DEM社,欠着的500万就不用还了
<约会大作战>中,有着两股主要的战斗力,其一是大家非常熟悉的精灵妹子,其二便是魔术师.作为作品中战斗力的主要构成之一,魔术师在整个故事里可以是发挥了相当重要的作用.只不过,魔术师们大多数情 ...
- 新年Java小游戏之「年兽大作战」祝您笑口常开
这个游戏加上编写文章,上班摸鱼时间加上回家的空闲时间,大概花了三天多. java写这玩应真的很痛苦,各种状态位,各种图片和逻辑判断,脑袋都快炸了.而且肯定没有前端的精致,效果一般,偶尔会有卡顿,各位就 ...
- Expo大作战(二十八)--expo sdk api之Speach(语音文字转换),Segment
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
最新文章
- Educational Codeforces Round 108(Rated for Div. 2) E - Off by One(一种一般图的边最大匹配,好题)
- OpenGL关于纹理和基本图形的混合问题
- error: object MultivariateNormalDistribution is not a member of package
- Python实现中文分词--正向最大匹配和逆向最大匹配
- 2017尼毕鲁笔试算法题
- c# 写文件注意问题及用例展示
- php str_replace替换特殊字符
- java: cannot execute binary file问题的解决
- 清除Eclipse工作空间列表
- 操作系统 第二部分 进程管理(一)
- 朋友圈文字怎么到中间_怎样查看微信朋友圈访客记录
- 河北省考计算机知识点,河北省计算机一级考试上机操作题考点总结与分析
- 每日一题系列:考拉有n个字符串,任意两个字符串长度都是不同的。考拉最近学习到两种字符串的排序方法
- bootstrap 滚动 进度条_Bootstrap中的进度条
- java爬取今日头条文章
- 我不敢再哭了,因为我怕自己成为职场上的杨超越
- Linux日常运维1 w vmstat top sar nload io free ps tcpdump
- jQuery入门(1)
- Django 快速搭建博客 第十一节(文章阅读量统计,自动生成文章摘要)
- 全志T7 Display驱动简介