第四天。

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

讲了一些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行,就不贴了。

【FCS NOI2018】福建省冬摸鱼笔记 day4的更多相关文章

  1. 【FCS NOI2018】福建省冬摸鱼笔记 day1

    省冬的第一天. 带了本子,笔,一本<算法导论>就去了.惊讶于为什么同学不带本子记笔记. 他们说:“都学过了.”,果然这才是巨神吧. 第一天:数论,讲师:zzx 前几页的课件挺水,瞎记了点笔 ...

  2. 【FCS NOI2018】福建省冬摸鱼笔记 day6【FJOI 2018】福建省选混分滚蛋记 day1

    记录一下day6发生的事情吧. 7:30 到达附中求索碑,被人膜,掉RP. 7:50 进考场,6楼的最后一排的最左边的位置,世界上最角落的地方,没有任何想法. 发现电脑时间和别人不一样,赶快调了一下. ...

  3. 【FCS NOI2018】福建省冬摸鱼笔记 day3

    第三天. 计算几何,讲师:叶芃(péng). dalao们日常不记笔记.@ghostfly233说他都知道了,就盼着自适应辛普森积分. 我计算几何基础不好……然而还是没怎么讲实现,感觉没听什么东西进去 ...

  4. 【FCS NOI2018】福建省冬摸鱼笔记 day2

    第二天. 同学还是不带本子记笔记.dalao. 第二天:图论,讲师:@ExfJoe 全程划水,前面都讲水算法[虽然我可能已经忘记了]什么最短路,Tarjan,最小生成树,2SAT,差分约束啥的,我现在 ...

  5. 【FCS NOI2018】福建省冬摸鱼笔记 day5

    第五天,也是讲课的最后一天. 数据结构专题,讲师:杨志灿 他的blog我似乎找不到了……以前肯定是在百度博客里面.但是现在百度博客消失了. PPT做的很有感觉,说了很多实用的技巧. 我觉得其实是收获最 ...

  6. Hash 日常摸鱼笔记

    本篇文章是Hash在信息学竞赛中的应用的学习笔记,分多次更新(已经有很多坑了) 一维递推 首先是Rabin-Karp,对于一个长度为\(m\)的串\(S\) \(f(S)=\sum_{i=1}^{m} ...

  7. 可持久化Treap 赛前摸鱼笔记

    1.基本结构 随机化工具 unsigned int SEED = 19260817; //+1s inline int Rand(){ SEED=SEED*1103515245+12345; retu ...

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

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

  9. 【转】让Chrome化身成为摸鱼神器,利用Chorme运行布卡漫画以及其他安卓APK应用教程

    下周就是十一了,无论是学生党还是工作党,大家的大概都会有点心不在焉,为了让大家更好的心不在焉,更好的在十一前最后一周愉快的摸鱼,今天就写一个如何让Chrome(google浏览器)运行安卓APK应用的 ...

随机推荐

  1. html实现鼠标悬停变成手型实现方式

    1.采用a标签实现的方式 <a href="javascript:void()">内容</a> 2.采用CSS实现的方式 // 变手形 oElement.s ...

  2. BZOJ3267/3272 KC采花/Zgg吃东西(线段树)

    直接维护选k个子段时的最优解似乎也可以做,然而复杂度是O(nk2logn),显然跑不过. 考虑一种费用流做法.序列里每个点拆成入点和出点,源连入汇连出,入点和出点间连流量1费用ai的边,相邻点出点向入 ...

  3. NOIP2011

    DAY1 铺地毯 (carpet.cpp/c/pas) 模拟 倒序离线处理 program carpet; var l,w:..,..] of longint; n,i,a,b,g,k,x,y:lon ...

  4. python使用selenium、PhantomJS获得网站cookie信息#windows

    首先python安装selenium,命令行中输入 pip install selenium 在执行代码如下代码时出现错误 driver=webdriver.PhantomJS() 错误如下 sele ...

  5. 【BZOJ 3326】[Scoi2013]数数 数位dp+矩阵乘法优化

    挺好的数位dp……先说一下我个人的做法:经过观察,发现这题按照以往的思路从后往前递增,不怎么好推,然后我就大胆猜想,从前往后推,发现很好推啊,维护四个变量,从开始位置到现在有了i个数 f[i]:所有数 ...

  6. git 复位出现If no other git process is currently running, this probably means a git process crashed in this repo

    复位到A节点的时候点了取消(终止),又去复位另外个节点,结果每次不管复位哪个都会报这个错误 fatal: Unable to create 'XXXXXXXXX' : File exists. If ...

  7. iptables之NAT代理-内网访问外网

    1.前言 本文使用NAT功能:内网服务器,想上网又不想被攻击. 工作原理:内网主机向公网发送数据包时,由于目的主机跟源主机不在同一网段,所以数据包暂时发往内网默认网关处理,而本网段的主机对此数据包不做 ...

  8. 2018.9.21 Codeforces Round #511(Div.2)

    只写了AB,甚至还WA了一次A题,暴露了蒟蒻的本质=.= 感觉考的时候有好多正确或和正解有关的思路,但是就想不出具体的解法或者想的不够深(长)(怕不是过于鶸) 话说CF的E题怎么都这么清奇=.= A. ...

  9. R语言 神经网络算法

    人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经网络由大量的人工神经元联结进行计算.大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自 ...

  10. 执行composer install后报错:执行composer install后报错: d11wtq/boris v1.0.10 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system.

    执行composer install后报错: d11wtq/boris v1.0.10 requires ext-pcntl * -> the requested PHP extension p ...