【刷水】之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 贪心+堆 排序后查 ...
随机推荐
- js定义数组的方法
1.定义时赋值 var mycars=new Array("a","b","c") 2.new一个数组对象 var mycars=new A ...
- ORACLE中主键约束跟唯一索引的区别
分类: DB 2011-12-03 21:34 611人阅读 评论(0) 收藏 举报 oracleconstraintsimmutableusertabledomain 1. 分别用两种方法创建主键 ...
- Day4_生成器_三元表达式_列表解析_生成器表达式
生成器:在函数内部包含yield关键,那么该函数执行的结果就是生成器. 生成器就是迭代器. def func(): print('first') yield 111111 print('second' ...
- 中文字体名称对照表(unicode码)及20个web安全字体
在Web编码中,CSS默认应用的Web字体是有限的,虽然在新版本的CSS3,我们可以通过新增的@font-face属性来引入特殊的浏览器加载字体.但多数情况下,考虑各个因素的影响我们还是在尽量充分利用 ...
- 利用redis自制幻灯片弹幕
前段时间赶项目,忙结婚,各大技术平台都没时间上,不过还是抽出点时间为自己的婚礼做了一点小玩具,今天我就来给大家分享一下. 先来看一下效果 这个项目是基于微信个人订阅号的,订阅号的开发在此我就不再赘述了 ...
- [ SSH框架 ] Struts2框架学习之三(OGNl和ValueStack值栈学习)
一.OGNL概述 1.1 什么是OGNL OGNL的全称是对象图导航语言( object-graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可 ...
- Maven学习(四)-- Maven的核心概念
摘自:http://www.cnblogs.com/xdp-gacl/p/4051819.html 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1. ...
- 【Quartz】常用方法的使用方式(三)
前言 总结了一下quartz组件的一些常用方法,以备将来不时之需.哈哈,看着挺简单有些好是值得笔记一下的.好记性不如烂笔头吗? 代码部分: 方法类内容: public class Example ...
- 去重是distinct还是group by?
distinct简单来说就是用来去重的,而group by的设计目的则是用来聚合统计的,两者在能够实现的功能上有些相同之处,但应该仔细区分,因为用错场景的话,效率相差可以倍计. 单纯的去重操作使用di ...
- PAT1101:Quick Sort
1101. Quick Sort (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CAO, Peng There is a ...