Citric I 模拟赛心得
柠檬超市
显然是要坑精度,所以不能存实数,把性价比的分子跟分母存下来,比较大小的时候移项即可。
Code var ans,n,s,i:longint;w,c,a,b:qword; begin readln(n,s);a:=0;b:=1;ans:=0; for i:=1 to n dobeginreadln(w,c);if(c<=s)and(w*b>c*a)then begina:=w;b:=c;ans:=i;end;end; writeln(ans); end.
柠檬的坦克游戏
第一反应先按照题目描述把暴力写了,写完暴力发现我理解题意了,然后进行了接近1个小时的思考(想了很多矬贪心)。我发现可以分别按D和R升序排序搞出两个序列,比某个元素优的元素是两个序列后缀(到该元素位置)交集的规模,那这个数字+1就是组数。发现这个玩意前缀和搞不了,N太大boolean集合+位运算或者boolean数组搞不了,线段树或者树状数组我想不到怎么用(据说有A掉的)。然后我看样例(样例很良心>_<)的时候突然发现如果按D降序排列,比某元素优和他是序列的前缀的一个最长下降(数据保证数字两两不同)子序列。然后无奈写了个heap加到暴力上优化,发现样例都过不了,所以意识到这这题一定是要按D排列,然后突然想起了lis,大喜,似乎按D降序排列以后按R搞最长不降子序列长度就是比他优的元素个数。然后又想了想,举了个反例发现了以上想法全部有一个大bug,如果在某元素前有多个元素R比他大然后构成一个单调上升的,那这些元素只会让长度大一,突然发现这些元素一定在一个组里,一旦下降,D也小,R也小就在下一个组里了。也就是说一个组内D减小的同时R单调上升。分到元素i时,分组的数目是原序列到i的前缀的下降序列的个数,想起Dilworth定理:最小下降序列划分=最长不降子序列(Orz wwwaaannngggrs大牛,他提高二讲过)。于是题目成功转化成LIS模型。
Code uses math; const maxn=100000; var D,B,num,fz,f,g:array[1..maxn] of longint;mid,l,r,ans,j,n,i,len:longint; procedure swap(var a,b:longint); var t:longint;begin t:=a;a:=b;b:=t;end; procedure qsort(l,r:longint);var i,j:longint;mid:longint;begini:=l;j:=r;mid:=D[(l+r)shr 1];repeatwhile(i<r)and(D[i]>mid)do inc(i);while(j>l)and(D[j]<mid)do dec(j);if i<=j then beginswap(D[i],D[j]);swap(B[i],B[j]);swap(num[i],num[j]);inc(i);dec(j);end;until i>j;if(i<r)then qsort(i,r);if(j>l)then qsort(l,j);end; begin readln(n);len:=0; for i:=1 to n dobeginreadln(D[i],B[i]);num[i]:=i;end; qsort(1,n); for i:=1 to n dobeginl:=1;r:=len;ans:=0;while l<=r do beginmid:=l+(r-l+1)shr 1;if G[mid]>B[i]then beginl:=mid+1;ans:=mid;endelse r:=mid-1;end;f[i]:=ans+1;fz[num[i]]:=f[i];len:=max(f[i],len);if B[i]>G[f[i]]then G[f[i]]:=B[i];end; for i:=1 to n dowriteln(fz[i]); end.
柠檬当上了JC局长
不得不吐槽这个题目背景,一眼能看出来时最短路加树规,还有30min,只能放弃了。
总结
这次是最近几次模拟赛成绩最好的一次,643参赛,310有分,3个AK的,我A掉前两题,第三题没交,排名14。还是要抓紧时间,要是第三题有时间写就好了,DP还是水平不够啊。
转载于:https://www.cnblogs.com/lijianlin1995/archive/2012/08/21/2649135.html
Citric I 模拟赛心得相关推荐
- 第一届『Citric杯』NOIP提高组模拟赛 题解
[官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...
- 2020 GMCPC粤澳赛 心得反思
2020 GMCPC粤澳赛 心得反思 前言 报喜报喜,我们两支队伍拿了三等奖.我们队写了5题,另一支队伍写出了4道题. 本来以为参加这个比赛都是陪着其他学校的大佬一起参参赛,陪跑而已,没想到出乎意料的 ...
- NOI.AC NOIP模拟赛 第六场 游记
NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...
- 2017.6.11 校内模拟赛
题面及数据及std(有本人的也有原来的) :2017.6.11 校内模拟赛 T1 自己在纸上模拟一下后就会发现 可以用栈来搞一搞事情 受了上次zsq 讲的双栈排序的启发.. 具体就是将原盘子大小cop ...
- 2020年蓝桥杯模拟赛2020.3.25直播笔记
2020年蓝桥杯模拟赛解题报告(CPP版本) 第八题 长草的bfs写法[我想暴力模拟O kmn] 深搜会爆 bfs像投到水里的涟漪 问题: const int dx[] = {1, 0, -1, 0} ...
- 2021年 第12届 蓝桥杯 第4次模拟赛真题详解及小结【Java版】
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...
- 2021年 第12届 蓝桥杯 第3次模拟赛真题详解及小结【Java版】
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...
- 蓝桥杯 Java B组 省赛决赛模拟赛 详解及小结汇总+题目下载【2013年(第4届)~2021年(第12届)】
蓝桥杯 Java B组 省赛决赛模拟赛 详解及小结汇总+题目下载[2013年(第4届)~2021年(第12届)] 百度网盘-CSDN蓝桥杯资料(真题PDF+其它资料) 提取码:6666 2013年 ...
- 2020年 第11届 蓝桥杯 第2次模拟赛真题详解及小结【Java版】
蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...
最新文章
- php get memory,PHP memory_get_usage 和 memory_get_peak_usage获取内存的区别
- ShakeDrop:深度残差学习中的 ShakeDrop 正则化
- A potentially dangerous Request.Form value was detected from the client
- Android2.3平台输入输出机制之总结
- php mysql 删除数据库,MySQL——删除数据库
- Windows Phone 7 开发 31 日谈——第6日:工具栏
- Gotchas 44-引用和临时对象
- 'django_tables2' is not a registered tag library. Must be one of:
- 两数之和 python_同一屏幕播放两个视频 视频左右两个画面或视频上下两个画面如何制作...
- 你知道你常用的dos和linux命令吗?
- 【Tensorflow】解决No module named ‘matplotlib‘/‘pandas‘
- php下载数据表,javascript – 如何使用php下载表数据作为excel表..?
- javascript基础知识(3) 基本语法
- python3 messagebox_如何在Python3.4中正确实现tkMessageBox?
- Silverlight开发之MVVM模式
- 《一名【合格】前端工程师的自检清单》学习学习
- @JsonIgnore和@JsonSerialize 的 区别
- 成都“小甜甜”:她给了男人希望,男人却被嘲笑X丝
- pyside2 镜像安装_简单安装Pyside2
- 红黑树插入修正和删除修正详解