【BZOJ1606】【Usaco2008 Dec】Hay For Sale

裸01背包

for(int i=;i<=n;i++)
for(int j=m;j>=a[i];j--)
f[j]=max(f[j],f[j-a[i]]+a[i]);

【BZOJ1607】【Usaco2008 Dec】轻拍牛头

暴力

【BZOJ1609】【Usaco2008 Feb】麻烦的聚餐

要求最长上升子序列或最长下降子序列的长度。

最基础的有dp算法

for(int i=;i<=n;i++)
for(int j=;j<=;j++){
for(int k=;k<=j;k++)f[i][j]=min(f[i-][k],f[i][j]);
if(a[i]!=j)f[i][j]++;
}

还有比较优的算法,nlogn求解最长上升子序列

这里的lower_bound找第一个大于x的数

bool cmp1(int a,int b){return a<=b;}
for(int i=;i<=n;i++) {
int k=lower_bound(g+,g++n,a[i],cmp1)-g;
g[k]=a[i];
ans=max(ans,k);
}

【BZOJ1613】【USACO2007 Jan】贝茜的晨练计划 DP

For(int i=;i<=n;i++){

  Dp[i][]=dp[i-][];

  For(int j=;j<=m;j++){

    Dp[i][]=max(dp[i][],dp[i-j][j]);

    Dp[i][j]=max(dp[i][j],dp[i-][j-]+a[i]);

  }

}

【BZOJ1622】【USACO2008 Open】名字的力量 暴力

N*M在字符串中找另一个字符串不需要连续

【BZOJ1623】【USACO2008 Open】奶牛飞车 贪心

因为速度要减去d(常数)*在前面的车数量,所以按速度从小到大,小的在前

【BZOJ1628】【USACO2007 Demo】City Skyline 堆

维护一个单调递增的栈,判断栈顶元素是否与a[i]相同

Ans=n;

For(int i=;i<=n;i++){

  if(q[top]>a[i]&&top>)top--;

  if(q[top]!=a[i])q[++top]=a[i];

  else ans--;
}

【BZOJ1633】【USACO2007 Feb】牛的词典 DP

Dp[i]表示I后最少要删的字母个数,dp[i]=min(dp[i+1]+1,f[i+len[j]+t]+t);

T为I后要删除t个字母才能找到s[j]

f[i]=f[i+]+;
for(int j=;j<=n;++j){
int now=,t=;
for(int k=i;k<m;++k) {
if(words[j][now]==s[k]) ++now;
else ++t;
if(now==words[j].length())break;
}
if(now==words[j].length()) f[i]=min(f[i],f[i+t+now]+t);
}

【BZOJ1634】【USACO2007 Jan】护花 贪心

对于每头牛来说都有自己ti*di代价

对于相邻两头牛,差异在于2*ta*db和2*tb*da,故写出比较函数,排序即可。

【BZOJ1635】【USACO2007 Jan】最高的牛

利用前缀和的思想,对于x,y,sum[x+1]++;sum[y]--;

求前缀和,用最高的height减去。

【BZOJ1636】【USACO2007 Jan】Balanced Lineup

ST表

【BZOJ1637】【USACO2007 Mar】Balanced Lineup sort一下乱搞搞

对于0种族 -1,对于1种族+1,求前缀和,对于每一种前缀和标记最早出现的位置

1~n循环一下,取最大值。

【BZOJ1638】【USACO2007 Mar】奶牛交通 DAG上DP

正向dp到一个点的路径条数,反向dp一遍,对于每条边经过次数即前端点*后端点,取max

【BZOJ1639】【USACO2007 Mar】月度开支

二分贪心

【BZOJ1640】【USACO2007 Nov】队列变换 贪心

如果前后相等就继续比较较内的字符

【BZOJ1641】【USACO2007 Nov】奶牛跨栏 用类似Prim的方法预处理即可

Floyd

 for(int k=;k<=n;k++)
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
f[i][j]=min(f[i][j],max(f[i][k],f[k][j]));

【BZOJ1642】【USACO2007 Nov】挤奶时间 DP

读入后,按照左端点排序,右端点直接加上等待时间。

F[I]表示第I个任务及以前的最大产奶量

f[i]=max(f[1]…f[i-1])+v[i]; (r[j]<=l[i])

【BZOJ1646】【USACO2007 Open】抓住那头牛 BFS

可以向前走,向后走,*2.

【BZOJ1648】【USACO2006 Dec】奶牛野餐

暴力DFS

【BZOJ1649】【USACO2006 Dec】Cow Roller Coaster DP

按照左端点排序,左端点相同排右端点

F[i][j]表示到I长度,成本为j

F[i][j]=max(f[i][j],f[a[i].l][j-a[i].c]+a[i[.f

【BZOJ1650】【USACO2006 Dec】跳石子

二分贪心

【BZOJ1651】【USACO2006 Feb】专用牛棚 堆贪心

a[l]+1,a[r+1]-1,求前缀和,取最大值

【BZOJ1688】【USACO2005 Open】疾病管理 状压DP

不知道为什么暴力时间复杂度不对,但就是过了

不过顺便学习了bitset(测试后发现时间上并没有比bool快多少(可能因为数据水

zyf-zyf:但是好写呀!

#include<bitset>
bitset<NUM> b;

bitset<NUM> b(int/string);

b.reset();清0

b.set();赋1

b.set/reset(pos);

b.count();1的个数

b.flip(pos/ /);取反

正解状态压缩dp~额,其实时间复杂度基本一样

用二进制表示每一头牛的得病情况

f[j|a[i]]=max(f[j|a[i]],f[j]+1)

【BZOJ1689】【USACO2005
Open】泥泞的路 贪心

按照左端点排序,尽量覆盖,贪心。

usaco silver刷水~其实是回顾一下,补题解的更多相关文章

  1. Luogu USACO Training 刷水记录

    开个坑记录一下刷USACO的Training的记录 可能会随时弃坑 只有代码和做法简述 可能没有做法简述 [USACO1.1]你的飞碟在这儿Your Ride Is He… 模拟,细节已忘 #incl ...

  2. [洛谷U22157]刷水题(数位dp)(hash)

    题目背景 做正经题是不可能做正经题的,这辈子都不可能做正经题的,毒瘤题又不会做毒瘤题,就是水题这种东西,才维持了蒟蒻的信心: 题目描述 这里有N+1 道水题,编号分别为0 ~N+1 ,每道水题都有它自 ...

  3. USACO 刷水

    BZOJ 1666 水.. BZOJ 1579 分层图最短路. BZOJ 1782 从一开始若某头牛停在U,那么U的子树的时间都会加一用BIT维护DFS序就行了 BZOJ 1572 贪心+堆 排序后查 ...

  4. bzoj刷水

    因为最近的生活太颓废总是不做题而被老师D了一番, 所以今天晚上到bzoj上去刷了几道水题.....   bzoj 4320: ShangHai2006 Homework 题目大意 维护一个支持两个操作 ...

  5. usaco silver

    大神们都在刷usaco,我也来水一水 1606: [Usaco2008 Dec]Hay For Sale 购买干草   裸背包 1607: [Usaco2008 Dec]Patting Heads 轻 ...

  6. BZOJ USACO 银组 水题集锦

    最近刷银组刷得好欢快,好像都是水题,在这里吧他们都记录一下吧(都是水题大家一定是道道都虐的把= =)几道比较神奇的题到时再列出来单独讲一下吧= =(其实我会说是BZOJ蹦了无聊再来写的么 = =) [ ...

  7. [暑假的bzoj刷水记录]

    (这篇我就不信有网站来扣) 这个暑假打算刷刷题啥的 但是写博客好累啊  堆一起算了 隔一段更新一下.  7月27号之前刷的的就不写了 , 写的累 代码不贴了,可以找我要啊.. 2017.8.27upd ...

  8. 【刷水】之USACO2008资格赛(Bzoj1599-1603)

    做之前真是没想到有这么水>.< 但做了还是发上来吧>.< 就当是刷一刷AC量&1A率什么的>.< Bzoj1599: [Usaco2008 Oct]笨重的石 ...

  9. Codeforces 刷水记录

    Codeforces-566F 题目大意:给出一个有序数列a,这个数列中每两个数,如果满足一个数能整除另一个数,则这两个数中间是有一条边的,现在有这样的图,求最大联通子图. 题解:并不需要把图搞出来, ...

随机推荐

  1. 使用Delphi对象(声明、实例化、构造、释放)

    一.声明和实例化 在使用一个对象之前,用class关键字声明一个对象.可以在一个程序或单元的type部分声明一个对象类型: type TFooObject = class; 除了声明一个对象类型,通常 ...

  2. 【PHP Cookie&&Session】

    大部分的人都知道Cookie,但是可能不了解Session,现在对这两者进行解释. 问题的提出: 有些网站会提示用户在一定的时间之内免登陆,这是用的什么技术?答案是Cookie技术. 有些购物网站会提 ...

  3. cordova

    cordova 1.安装 nodejs => node -v2.安装 npm install -g cordova => cordova -v3.安装 jdk 环境变量:(系统变量) 新建 ...

  4. WPF QuickStart系列之附加属性(Attached Property)

    这一篇博客是关于如何使用附加属性和创建自定义附加属性的. 1. 附加属性使用, WPF中对附加属性使用最多的莫过于对控件布局时设置控件的位置,例如在Canvas中有一个Rectangle, Ellip ...

  5. C语言中的位操作(14)--反转比特位

    本篇文章主要讲述几种反转比特位的方法: 将一个32位数:abcd efgh 转置为hgfe dcba 1.常规方法 unsigned int v; // 目标待转置数 unsigned int r = ...

  6. ASCIIHexDecode,RunLengthDecode

    public static byte[] ASCIIHexDecode(byte[] data) { MemoryStream outResult = new MemoryStream(); bool ...

  7. CoreLocation 下的定位跟踪测速

    #import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewCont ...

  8. 对于一个负数mod正数

    鸟神说.. a/b靠零取整 然后呢..a%b定义成a-(a/b)*b c语言就是这么算的... 那么python2.6是怎么算的呢 如果最后你取模想得到一个正数.. 那么在上述取模定义不变的情况下 p ...

  9. CF735C 数论\平衡树叶子节点的最大深度\贪心\斐波那契\条件归一化

    http://codeforces.com/problemset/problem/735/C 题意..采用淘汰赛制..只要打输就退出比赛..而且只有两个选手打过的场数 相差不超过1才能比赛..最后问你 ...

  10. Java中继承thread类与实现Runnable接口的区别

    Java中线程的创建有两种方式: 1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2.  通过实现Runnable接口,实例化Thread类 在实际应用中, ...