
USACO
LauZiyang
exploring
展开
-
USACO邮票丑数题解
这两道题可使用特殊的优化方法:丑数:#include#include#includeusing namespace std;int num[51];int f[5000001];int k,n,m,ans;int tot[201]={0};//表示第j个数的值乘上第f[tot[j]]大于当前寻找的丑数的前一个丑数的最小值原创 2017-07-25 10:35:07 · 297 阅读 · 0 评论 -
省选专练之[USACO13NOV]没有找零No Change
约翰到商场购物,他的钱包里有K(1 <= K <= 16)个硬币,面值的范围是1…100,000,000。约翰想按顺序买 N个物品(1 <= N <= 100,000),第i个物品需要花费c(i)块钱,(1 <= c(i) <= 10,000)。在依次进行的购买N个物品的过程中,约翰可以随时停下来付款,每次付款只用一个硬币,支付购买的内容是从上一次支付后开始...原创 2018-10-18 22:52:10 · 165 阅读 · 0 评论 -
省选专练之[USACO08NOV]奶牛混合起来Mixed Up Cows
约翰家有N头奶牛,第i头奶牛的编号是Si,每头奶牛的编号都是唯一的。这些奶牛最近 在闹脾气,为表达不满的情绪,她们在挤奶的时候一定要排成混乱的队伍。在一只混乱的队 伍中,相邻奶牛的编号之差均超过K。比如当K = 1时,1, 3, 5, 2, 6, 4就是一支混乱的队伍, 而1, 3, 6, 5, 2, 4不是,因为6和5只差1。请数一数,有多少种队形是混乱的呢?Naive状压。直接记录最右端的...原创 2018-10-18 22:50:17 · 150 阅读 · 0 评论 -
图论复习usaco2006jan gold分离的路径
为了从FFF个草场中的一个走到另一个,贝茜和她的同伴们不得不路过一些她们讨厌的可怕的树。奶牛们已经厌倦了被迫走某一条路,所以她们想建一些新路,使每一对草场之间都会至少有两条相互分离的路径,这样她们就有多一些选择。每对草场之间已经有至少一条路径,给出所有 R条双向路的描述,每条路连接了两个不同的草场,请计算最少的新建道路的数量。路径由若干道路首尾相连而成,两条路径相互分离,是指两条路径没有一条重...原创 2018-10-18 22:33:51 · 451 阅读 · 0 评论 -
[USACO12JAN]视频游戏的连击Video Game Combos
很早之前就做过啦补一下题解F(i,j)前i个的字符为j的匹配注意end要累加#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<queue>using nam...原创 2018-09-09 22:27:46 · 3533 阅读 · 0 评论 -
省选专练 [USACO07OPEN]城市的地平线City Horizon
算法本质:求一堆矩形的交依旧是扫描线这里用线段树实现离散化l,r线段树维护区间最大值然后把每个离散键值统计一下(如果没有离散,那个l,r一段是不会不同的)#include<bits/stdc++.h>using namespace std;typedef int INT;#define int long long #define lc (p<...原创 2018-07-17 21:27:47 · 324 阅读 · 0 评论 -
省选专练[USACO18JAN]Stamp Painting
计数类DP正难则反求出答案的补集就是动态规划用一个伪前缀和优化就行了#include<bits/stdc++.h>using namespace std;typedef int INT;#define int long longconst int N=1e6+10;int n,m,k;const int mod=1e9+7;int f[N]={};int sum=0;...原创 2018-05-27 20:17:54 · 273 阅读 · 0 评论 -
省选专练[USACO18JAN]Cow at Large Gold
简单的树形DP一次DFS求出深度和当前距离叶子的最近距离第二次DFS求出所有深度小于距离最近叶子的点#include<bits/stdc++.h>using namespace std;const int N=1e5+10;struct Front_star{ int u,v,w,nxt;}e[N*4];int cnt=0;int first[N]={};void...原创 2018-05-27 20:16:02 · 247 阅读 · 0 评论 -
省选专练[USACO18JAN]MooTube
每次给一个起点 然后询问和他相连的点的边权比k大的点有几个 路径边权是两点连接的所有路径上最小值你需要一个可以合并的东西。可并堆?并查集就够了。强制离线,每次把当前符合答案并上答案就是当前联通块大小#include<bits/stdc++.h>using namespace std;const int N=1e5+10;struct edge{ int u,v,w;}e...原创 2018-05-27 20:14:01 · 307 阅读 · 0 评论 -
省选专练(大水题)usaco2008feb-silver连线游戏
貌似x/y排个序手动unique就好了#include<bits/stdc++.h>using namespace std;const double eps=1e-16;const double INF=1e16;int cmp(double A){ if(fabs(A)<eps)return 0; else return(A>0)?1:-1;}bool e...原创 2018-05-26 18:13:50 · 168 阅读 · 0 评论 -
省选专练USACO11FEBGOLD奶牛抗议
水题。由于之前存在一个前缀和和大于某个值的条件直接树状数组优化罢了。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef int INT;#define ...原创 2018-03-23 23:12:35 · 336 阅读 · 0 评论 -
省选专练USACO TRAIN5.1 圈奶牛
凸包入门题。介绍一下我的算法:Graham扫描法利用栈的思想。与Jarris步进法不同的是,这个算法不适用角度。他利用了向量的叉乘。根据有向的平行四边形来判断当前点是否更优。OK看代码吧。(*^▽^*)。#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#...原创 2018-03-19 22:54:54 · 270 阅读 · 0 评论 -
省选专练[USACO15DEC]最大流Max Flow
白金组的第一年,题目挺水的。第一这不是网络流废话。然后这明显是棵树,接着考虑对其进行树链剖分。这个题有暴力做法,还记得货物运输吗?可以暴力跳LCA。这个也可以。然后发现线段树维护区间修改单点查询,树状数组就可以了嘛。#include<iostream>#include<cstdio>#include<algorithm>#include<cmath&...原创 2018-02-12 15:31:52 · 202 阅读 · 0 评论 -
省选专练[USACO06NOV]玉米田Corn Fields
农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ 12; 1 ≤ N ≤ 12),每一格都是一块正方形的土地。John打算在牧场上的某几格里种上美味的草,供他的奶牛们享用。遗憾的是,有些土地相当贫瘠,不能用来种草。并且,奶牛们喜欢独占一块草地的感觉,于是John不会选择两块相邻的土地,也就是说,没有哪两块草地有公共边。John想知道,如果不考虑草地的总块数,那么...原创 2018-10-19 07:39:28 · 211 阅读 · 0 评论