【刷水】之USACO2008资格赛(Bzoj1599-1603)
做之前真是没想到有这么水>.<
但做了还是发上来吧>.<
就当是刷一刷AC量&1A率什么的>.<
Bzoj1599: [Usaco2008 Oct]笨重的石子
枚举。。
#include<cstdio>
int a,b,c;
int t[]; int main(){
scanf("%d%d%d",&a,&b,&c);
for(int i=;i<=a;i++)
for(int j=;j<=b;j++)
for(int k=;k<=c;k++)
t[i+j+k]++;
int ans=,ansx=;
for(int i=;i<=a+b+c;i++)
if(t[i]>ans) ans=t[i],ansx=i;
printf("%d\n",ansx);
return ;
}
Bzoj1600: [Usaco2008 Oct]建造栅栏
组成四边形的充要条件是三边之和大于第四边
也就是任意一边不超过总长的一半(N边形也适用)
然后枚举一下第二次切在哪,两边讨论一下得出这种情况的贡献
时间O(n),空间O(1)
网上的题解貌似都是背包,但那样就是n^2了。。
#include<cstdio>
#include<algorithm>
using namespace std;
int n,lim,ans; int main(){
scanf("%d",&n);
lim=(n+)/; for(int i=;i<=n-;i++){
int a=lim,b=i-lim,c=i+lim,d=n-lim;
a=min(i,a),c=min(n,c);
b=max(,b),d=max(i,d);
ans+=(a-b-)*(c-d-);
}
printf("%d\n",ans);
return ;
}
Bzoj1601: [Usaco2008 Oct]灌水
这道题以前做了,新加一个点然后最小生成树。
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=; int p[maxn];
int find(int x){return p[x]==x?x:p[x]=find(p[x]);}
struct edge{
int u,v,w;
bool operator <(const edge&a)
const {return w<a.w;}
}e[maxn*maxn+maxn];
int n,k; int main(){
scanf("%d",&n);
for(int i=;i<=n;i++) p[i]=i;
int w; for(int i=;i<=n;i++){
scanf("%d",&w);
e[++k].u=,e[k].v=i;
e[k].w=w;
}
for(int i=;i<=n;i++)
for(int j=;j<=n;j++){
scanf("%d",&w);
e[++k].u=i,e[k].v=j;
e[k].w=w;
}
sort(e+,e+k+); long long ans=;
for(int i=;i<=k;i++){
int x=find(e[i].u),y=find(e[i].v);
if(x!=y) p[x]=y,ans+=e[i].w;
} printf("%lld\n",ans);
return ;
}
Bzoj1602: [Usaco2008 Oct]牧场行走
模板题,复习倍增。
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=1e3+;
int n,q; int head[maxn],e[maxn*],w[maxn*],nxt[maxn*],k;
int adde(int u,int v,int g){
e[++k]=v;w[k]=g;nxt[k]=head[u];head[u]=k;
e[++k]=u;w[k]=g;nxt[k]=head[v];head[v]=k;
}
int dep[maxn],dist[maxn],p[maxn][]; int dfs(int u){
for(int i=;i<;i++)
p[u][i]=p[p[u][i-]][i-];
for(int i=head[u];i;i=nxt[i]){
int v=e[i];
if(v==p[u][]) continue;
dist[v]=dist[u]+w[i];
dep[v]=dep[u]+;
p[v][]=u;
dfs(v);
}
} int lca(int u,int v){
if(dep[u]<dep[v]) swap(u,v);
int del=dep[u]-dep[v];
for(int i=;i<;i++)
if(del&(<<i)) u=p[u][i];
if(u==v) return v;
for(int i=;i>=;i--)
if(p[u][i]!=p[v][i])
u=p[u][i],v=p[v][i];
return p[u][];
} int main(){
scanf("%d%d",&n,&q);
int u,v,g;
for(int i=;i<n;i++)
scanf("%d%d%d",&u,&v,&g),
adde(u,v,g); dfs(); for(int i=;i<=q;i++){
scanf("%d%d",&u,&v);
printf("%d\n",dist[u]+dist[v]-*dist[lca(u,v)]);
}
return ;
}
Bzoj1603: [Usaco2008 Oct]打谷机
顺序并不会影响什么,然后直接来。。
#include<cstdio>
int n,a,b,c,ans;
int main(){
scanf("%d",&n);
for(int i=;i<n;i++){
scanf("%d%d%d",&a,&b,&c);
ans^=c;
}
printf("%d\n",ans);
return ;
}
也不知道做这些题意义何在
然而玩水真是欢乐
【刷水】之USACO2008资格赛(Bzoj1599-1603)的更多相关文章
- [洛谷U22157]刷水题(数位dp)(hash)
题目背景 做正经题是不可能做正经题的,这辈子都不可能做正经题的,毒瘤题又不会做毒瘤题,就是水题这种东西,才维持了蒟蒻的信心: 题目描述 这里有N+1 道水题,编号分别为0 ~N+1 ,每道水题都有它自 ...
- NOIP前刷水行动
2016.11.15 BZOJ1009:DP+矩阵乘法+KMP BZOJ1898:矩阵乘法 BZOJ4101:贪心,考虑我们往右边撞的时候,我们会向左边冲 ,于是枚举答案点利用一个指针计算即可! 20 ...
- bzoj刷水
因为最近的生活太颓废总是不做题而被老师D了一番, 所以今天晚上到bzoj上去刷了几道水题..... bzoj 4320: ShangHai2006 Homework 题目大意 维护一个支持两个操作 ...
- usaco silver刷水~其实是回顾一下,补题解
[BZOJ1606][Usaco2008 Dec]Hay For Sale 裸01背包 ;i<=n;i++) for(int j=m;j>=a[i];j--) f[j]=max(f[j], ...
- [暑假的bzoj刷水记录]
(这篇我就不信有网站来扣) 这个暑假打算刷刷题啥的 但是写博客好累啊 堆一起算了 隔一段更新一下. 7月27号之前刷的的就不写了 , 写的累 代码不贴了,可以找我要啊.. 2017.8.27upd ...
- Luogu USACO Training 刷水记录
开个坑记录一下刷USACO的Training的记录 可能会随时弃坑 只有代码和做法简述 可能没有做法简述 [USACO1.1]你的飞碟在这儿Your Ride Is He… 模拟,细节已忘 #incl ...
- Codeforces 刷水记录
Codeforces-566F 题目大意:给出一个有序数列a,这个数列中每两个数,如果满足一个数能整除另一个数,则这两个数中间是有一条边的,现在有这样的图,求最大联通子图. 题解:并不需要把图搞出来, ...
- bzoj 刷水
bzoj 3856: Monster 虽然是sb题,,但是要注意h可能<=a,,,开始忘记判了WA得很开心. #include <iostream> #include <cst ...
- USACO 刷水
BZOJ 1666 水.. BZOJ 1579 分层图最短路. BZOJ 1782 从一开始若某头牛停在U,那么U的子树的时间都会加一用BIT维护DFS序就行了 BZOJ 1572 贪心+堆 排序后查 ...
随机推荐
- JVM学习--(六)类加载器原理
我们知道我们编写的java代码,会经过编译器编译成字节码文件(class文件),再把字节码文件装载到JVM中,映射到各个内存区域中,我们的程序就可以在内存中运行了.那么字节码文件是怎样装载到JVM中的 ...
- ionic1 sqlite的添加使用
开始使用这个存储方式的原因是 之前用的Local Storage 存储在ios设备上 当内存达到一定程度时 ios会自动清除app的一部分存储 所以之前存的东西可能会被清除 达不到想要的功能效果 ...
- time元素与微格式/pubdate属性
首先来说下微格式,它是一种利用HTML的class属性来对网页添加诸如新闻事件发生的日期和时间.个人电话号码.企业邮箱之类的附加信息方法. time元素代表24小时中的某个时刻或某个日期,表示时刻时允 ...
- java并发包小结(二)
接上一篇 java并发包小结(一):http://blog.csdn.net/aalansehaiyang52/article/details/8877579 Future 接口Future 接口允许 ...
- JavaScript中两个对象数组 属性undefined
var BaiduUsers = []; var UserArray = function(name, phone, id, id2) { this.name = name; this.phone = ...
- parted分区详解 查看UUID两种方式 blkid 和 ls -l /dev/disk/by-uuid
通常我们用的比较多的一般都是fdisk工具来进行分区,但是现在由于磁盘越来越廉价,而且磁盘空间越来越大:而fdisk工具他对分区是有大小限制的,它只能划分小于2T的磁盘.但是现在的磁盘空间很多都已经是 ...
- Web前端文件上传进度的显示
跟后台关系不大,主要是前端js实现,具体使用了XMLHttpRequest的ProgressEvent事件,可以参考MDN中的Using XMLHttpRequest https://develope ...
- Mac Launchpad出现两个相同快捷方式的解决办法
进入以下目录 ~/Library/Application Support/Dock 把里面的.db文件删掉,然后注销重新登录即可.
- MySQL快速生成本地测试数据
利用数据的存储过程生成测试数据: 我们可以通过数据库的的 INSERT 语句直接在存储过程中向普通数据表中添加数据,但是 当我们添加到百万数据后,往普通表插入测试数据的性能就会明显降低.所以在这里建议 ...
- Windows下配置vue的环境
最近在学习vue.js,希望前端能用vue来作为主要框架.这里记录一下NPM在Windows中安装过程. 下载安装 下载地址 下载v6.11.0 LTS稳定版. 在C盘创建nodejs目录,并进行安装 ...