【FCS NOI2018】福建省冬摸鱼笔记 day4
第四天。
动态规划专题,讲师:闫神
讲了一些DP优化技巧,然而思想难度好大啊……根本没想到能优化那地步,连DP方程都没有呢。
不过有几题我还是想明白了。
讲了单调队列,决策单调性,四边形不等式,斜率优化,甚至有DP套DP,然而就是双重DP,什么背包+数位罢了。
轮廓线DP,插头DP都有点难写啊……不过也是状压DP的一大内容 。还有概率DP,期望DP,非常恐怖。
中午划水。
下午的题比较良心。T1不知道写了什么写挂了,T2就很好AC,T3毒瘤题。
【T1】
题面:m个青蛙,它们可以跳无限远,但是第i只青蛙每一次跳比d长时,要花费ci。
河面上,有n+2个石头,起点终点2个,中间n个。中间的石头只能被跳到1次,并且一定要被跳到1次。
问所有青蛙过河最小花费。
题解:二分多少只青蛙可以不花费任何代价过河,那么其他的青蛙就直接飞过河,代价就是最小的那么多个代价的和。
如何check?显然每次我们让最左边的青蛙跳到右边第一个没有跳过的石头上,如果有代价就挂了,一直到终点都没有代价就好了。
特判一只都不行的情况,显然所有青蛙都飞过去,除了最小代价的,那只青蛙一个一个跳。
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,k,d,maxz;
int a[100005];
long long c[100005];
bool check(int x){for(int i=0;i<=k-x+1;++i)if(a[i+x]-a[i]>d) return 0;return 1;
}
int main(){freopen("frog.in","r",stdin);freopen("frog.out","w",stdout);int T; scanf("%d",&T);while(T--){scanf("%d%d%d%d",&n,&m,&k,&d); maxz=0;for(int i=1;i<=m;++i) scanf("%lld",c+i);for(int i=1;i<=k;++i) scanf("%d",a+i);if(d>=n-1) {puts("0"); continue;}sort(c+1,c+m+1); sort(a+1,a+k+1); a[0]=1; a[k+1]=n;for(int i=1;i<=m;++i) c[i]+=c[i-1];int l=0,r=min(m,k),mid,ans=-1;while(mid=l+r>>1,l<=r)check(mid)?l=mid+1,ans=mid:r=mid-1;if(ans==0){long long sum=c[m]-c[1];for(int i=1;i<=k+1;++i) if(a[i]-a[i-1]>d) sum+=c[1];printf("%lld\n",sum);}else printf("%lld\n",c[m-ans]);}return 0;
}
【T2】
题面:定义一个字符串的价值为:长度^2/最短循环节长度。给定一个只有a,b,c的字符串,求出它子序列中价值的最大值。
题解:重定义价值=长度*循环节最大循环次数。那么对于长度为4的任意串,根据抽屉原理,必有一个字符出现2次,那么价值为2*2=原来的价值4,也就是说,长度为4的任意串不会更优。
以此类推,我们知道长度为7或更长的都不会更优,长度为5和6的只有一些(相比其中更短的)会更优。
总计不超过102种,于是每一种都check一下,就得到答案。
我的代码循环展开了,太TM长了,327行,就不贴了。
转载于:https://www.cnblogs.com/PinkRabbit/p/8456469.html
【FCS NOI2018】福建省冬摸鱼笔记 day4相关推荐
- 摸鱼笔记-ADB-查看设备信息
查看设备信息.修改设备设置...... 查看设备信息 查看型号: adb shell getprop ro.product.model #执行结果: C106 查看电池状况: adb shell du ...
- 重走c语言—摸鱼大学生的c语言基础笔记
这里是太阳 这是第一篇正式博客,之前有过很多次想法,但是后来因为很多原因,都没有进行写作 作为C站的新面孔,这里自我介绍一下,网上的朋友都管我叫太阳,所以就自然而然把太阳作为虚拟的名字了.当代计算机系 ...
- [摸鱼]cdq分治 学习笔记
待我玩会游戏整理下思绪(分明是想摸鱼 cdq分治是一种用于降维和处理对不同子区间有贡献的离线分治算法 对于常见的操作查询题目而言,时间总是有序的,而cdq分治则是耗费\(O(logq)\)的代价使动态 ...
- 【机器学习】用摸鱼学来解释隐马尔可夫模型(HMM)
尝试用摸鱼学来解释隐马尔可夫模型 假如小明一周工作六天,每天工作状态都不相同,比如有活少.活多.心情好.心情差和双倍工资5种状态,不同工作状态下工作效率也不相同,活少和心情差的时候摸鱼时间多,活多.心 ...
- 【职场】什么才是程序员摸鱼的最高境界?
要说这两天最火的选修课,肯定是清华大学雨课堂的<摸鱼学导论>了. 遗憾的是因为学历,很多热爱学习的同学都没法报这门课,不然它可能会成为今年中文网课的TOP1.还在上高中的同学们可以努努力试 ...
- datagridview滚动条自动滚动_掘金上摸鱼的新发现,无限滚动(infinitescroll)
前言 上班摸鱼,下班摸鱼,一直摸一直爽.在一次调试的过程中,我按下了F12刚好是掘金的页面,然后把代码输入到控制台之后,顺手滚动了几下右侧的滚动条,发现个问题如下图所示: 掘金官网 ...
- 推荐几个在大厂996,却一心想要按时下班的公众号主和他们的工作(摸鱼)心得...
大家做程序员这一行的,都知道在互联网行业有的时候忙是真忙,闲也是真的闲,但是呢没活你也得给我加班...那除了咱们都知道滴对抗压榨的三大手段--带薪拉屎.带薪抽烟.带薪遛弯外呢(我没干过,别瞎猜),还有 ...
- 程序员的自我救赎,GitHub 摸鱼神器一览
作者 | HelloGitHub-小鱼干 来源 | HelloGitHub 都知道 VSCode 有各种摸鱼小插件,边听云音乐.边在 IDE 斗地主,再来一个 NBA 直播,怎一个美滋滋了得.作为 V ...
- 华为“杀疯了”:发布“摸鱼”神器10余款新品
或许,你已经快被华为智慧办公产品包围了. 在笔记本电脑上"刷手机"是一种什么感觉? 比如摸鱼时间,坐在工位上的你可以在电脑上一键打开"开心消消乐",而其他人只 ...
最新文章
- 系统设计规范化攻克了什么问题
- 基于OpenCV的焊件缺陷检测
- charset参数 sqluldr2_SQLULDR2的安全保密功能
- noip2016 组合数问题
- 看动画学算法之:平衡二叉搜索树AVL Tree
- MacOS 下如何创建文本文件
- mysql数据库原理与应用武洪萍第三张答案_mysql数据库武洪萍版第四章习题与答案...
- HDU 5898 odd-even number
- CentOS 如何修改mysql 用户root的密码
- 从「模拟」理解零知识证明:平行宇宙与时光倒流—— 探索零知识证明系列(二)
- unity学习笔记-uniwebview3的使用以及一些补充(视频问题已解决)
- 微信ubuntu版服务器,Ubuntu 18.04 安装微信(Linux通用)
- 计算机二级电子表格使用技巧36种,Excel表格的基本操作(精选36个技巧)
- 国产最强负载均衡器LVS(理论+实战)
- 【Lqb T336】Cowboys
- linux安装zookeeper集群保姆教程,包括集群启停脚本
- 发票摇奖数据汇总(数据行转列)
- 在调用股票购买接口时要注意什么事项?
- 05、人人都会设计模式:代理模式--Proxy
- Apache POI转ppt为图片
热门文章
- 在开课吧学python的经历-“你毕业2年,为什么写3年的工作经验?”“加班啊”...
- python基础知识资料-Python基础知识汇总
- 一个完整的python项目源码-一个Python开源项目-腾讯哈勃沙箱源码剖析(上)
- python游戏程序-python游戏程序
- 用python画图代码简单-【Matplotlib】利用Python进行绘图
- python爬虫抓取数据的步骤-Python爬虫抓取手机APP的传输数据
- python大数据分析实例-用Python整合的大数据分析实例
- python是基于什么语言开发-2.python是什么编程语言。
- 软件工程python就业方向-月薪2万+的Python Web岗,学到什么程度能找到工作?
- python语言的官方网站地址-字符串中的街道地址搜索-Python或Ruby