【刷水】之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 贪心+堆 排序后查 ...
随机推荐
- golang 常见疑惑总结
经常会有一些朋友问go语言的一些问题和疑惑,其实好多问题在官方文档和stackoverflow里都有详细的讲解,只要你肯花时间读一遍官方文档和Effective Go基本上都有找到答案.本文总结一下大 ...
- sort list(给链表排序)
Sort a linked list in O(n log n) time using constant space complexity. 题目要求使用O(nlogn)时间复杂度,可以考虑使用归并排 ...
- Spring多数据源解决方案
Figure 2 多数据源的选择逻辑渗透至客户端 解决方案 Figure 3 采用Proxy模式来封转数据源选择逻辑 通过采用Proxy模式我们在方案实现中实现一个虚拟的数据源.并且通过它来封装数据源 ...
- Java Web开发中路径问题小结
Java Web开发中,路径问题是个挺麻烦的问题,本文小结了几个常见的路径问题,希望能对各位读者有所帮助. (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 ...
- sqlServer遇到的问题
重置自增列:dbcc checkident(表名,reseed,数字(初始值))
- windows下mongodb安装详解
1.打开官网https://www.mongodb.com/download-center?jmp=nav#community 注:这里小伙伴们可是开启下FQ软件psiphon 3下载(不开启FQ好像 ...
- Python并发编程-RabbitMQ消息队列
RabbitMQ队列 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列 ...
- windows SSH Tunnel实施日记
1.准备条件:SSH跳板服务器一个.软件:Putty,CCProxy 2.putty建立SSH Tunnel:先在session那儿把服务器地址填好,到Tunnel界面上,选Dynamics和Auto ...
- Kali Linux 工具使用中文说明书
From: https://www.hackfun.org/kali-tools/kali-tools-zh.html 英文版地址:http://tools.kali.org/ 信息收集 accche ...
- Socket.io文字直播聊天室的简单代码
直接上代码吧,被注释掉的主要是调试代码,和技术选型的测试代码 var app = require('express')(); var server = require('http').Server(a ...