第四天。

动态规划专题,讲师:闫神

讲了一些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相关推荐

  1. 摸鱼笔记-ADB-查看设备信息

    查看设备信息.修改设备设置...... 查看设备信息 查看型号: adb shell getprop ro.product.model #执行结果: C106 查看电池状况: adb shell du ...

  2. 重走c语言—摸鱼大学生的c语言基础笔记

    这里是太阳 这是第一篇正式博客,之前有过很多次想法,但是后来因为很多原因,都没有进行写作 作为C站的新面孔,这里自我介绍一下,网上的朋友都管我叫太阳,所以就自然而然把太阳作为虚拟的名字了.当代计算机系 ...

  3. [摸鱼]cdq分治 学习笔记

    待我玩会游戏整理下思绪(分明是想摸鱼 cdq分治是一种用于降维和处理对不同子区间有贡献的离线分治算法 对于常见的操作查询题目而言,时间总是有序的,而cdq分治则是耗费\(O(logq)\)的代价使动态 ...

  4. 【机器学习】用摸鱼学来解释隐马尔可夫模型(HMM)

    尝试用摸鱼学来解释隐马尔可夫模型 假如小明一周工作六天,每天工作状态都不相同,比如有活少.活多.心情好.心情差和双倍工资5种状态,不同工作状态下工作效率也不相同,活少和心情差的时候摸鱼时间多,活多.心 ...

  5. 【职场】什么才是程序员摸鱼的最高境界?

    要说这两天最火的选修课,肯定是清华大学雨课堂的<摸鱼学导论>了. 遗憾的是因为学历,很多热爱学习的同学都没法报这门课,不然它可能会成为今年中文网课的TOP1.还在上高中的同学们可以努努力试 ...

  6. datagridview滚动条自动滚动_掘金上摸鱼的新发现,无限滚动(infinitescroll)

    前言 上班摸鱼,下班摸鱼,一直摸一直爽.在一次调试的过程中,我按下了F12刚好是掘金的页面,然后把代码输入到控制台之后,顺手滚动了几下右侧的滚动条,发现个问题如下图所示: ‍‍‍‍‍‍‍‍‍‍掘金官网 ...

  7. 推荐几个在大厂996,却一心想要按时下班的公众号主和他们的工作(摸鱼)心得...

    大家做程序员这一行的,都知道在互联网行业有的时候忙是真忙,闲也是真的闲,但是呢没活你也得给我加班...那除了咱们都知道滴对抗压榨的三大手段--带薪拉屎.带薪抽烟.带薪遛弯外呢(我没干过,别瞎猜),还有 ...

  8. 程序员的自我救赎,GitHub 摸鱼神器一览

    作者 | HelloGitHub-小鱼干 来源 | HelloGitHub 都知道 VSCode 有各种摸鱼小插件,边听云音乐.边在 IDE 斗地主,再来一个 NBA 直播,怎一个美滋滋了得.作为 V ...

  9. 华为“杀疯了”:发布“摸鱼”神器10余款新品

    或许,​你已经快被华为智慧办公产品包围了. 在笔记本电脑上"刷手机"是一种什么感觉? 比如摸鱼时间,坐在工位上的你可以在电脑上一键打开"开心消消乐",而其他人只 ...

最新文章

  1. 系统设计规范化攻克了什么问题
  2. 基于OpenCV的焊件缺陷检测
  3. charset参数 sqluldr2_SQLULDR2的安全保密功能
  4. noip2016 组合数问题
  5. 看动画学算法之:平衡二叉搜索树AVL Tree
  6. MacOS 下如何创建文本文件
  7. mysql数据库原理与应用武洪萍第三张答案_mysql数据库武洪萍版第四章习题与答案...
  8. HDU 5898 odd-even number
  9. CentOS 如何修改mysql 用户root的密码
  10. 从「模拟」理解零知识证明:平行宇宙与时光倒流—— 探索零知识证明系列(二)
  11. unity学习笔记-uniwebview3的使用以及一些补充(视频问题已解决)
  12. 微信ubuntu版服务器,Ubuntu 18.04 安装微信(Linux通用)
  13. 计算机二级电子表格使用技巧36种,Excel表格的基本操作(精选36个技巧)
  14. 国产最强负载均衡器LVS(理论+实战)
  15. 【Lqb T336】Cowboys
  16. linux安装zookeeper集群保姆教程,包括集群启停脚本
  17. 发票摇奖数据汇总(数据行转列)
  18. 在调用股票购买接口时要注意什么事项?
  19. 05、人人都会设计模式:代理模式--Proxy
  20. Apache POI转ppt为图片

热门文章

  1. 在开课吧学python的经历-“你毕业2年,为什么写3年的工作经验?”“加班啊”...
  2. python基础知识资料-Python基础知识汇总
  3. 一个完整的python项目源码-一个Python开源项目-腾讯哈勃沙箱源码剖析(上)
  4. python游戏程序-python游戏程序
  5. 用python画图代码简单-【Matplotlib】利用Python进行绘图
  6. python爬虫抓取数据的步骤-Python爬虫抓取手机APP的传输数据
  7. python大数据分析实例-用Python整合的大数据分析实例
  8. python是基于什么语言开发-2.python是什么编程语言。
  9. 软件工程python就业方向-月薪2万+的Python Web岗,学到什么程度能找到工作?
  10. python语言的官方网站地址-字符串中的街道地址搜索-Python或Ruby