2015年9月12日

usaco 3.1 Agri-Net

摘要: 给一个邻接矩阵求最小生成树的权值。最简单的prim就行,但我写了加堆优化的prim。以提高效率。/*ID: modengd1PROG: agrinetLANG: C++*/#include #include #include #include using namespace std;int N;in... 阅读全文

posted @ 2015-09-12 19:04 insaneman 阅读(192) 评论(0) 推荐(0)

2015年9月8日

usaco Fractions to Decimals

摘要: 分数转小数,循环小数的循环节要放在括号内方法是模拟触发操作,然后记录下余数,每次生成的余数检查以前是否出现过,出现过说明出现了循环节,则找到循环节开始的地方。这题一点都不好写,我反正是打了好多补丁的感觉。/*ID: modengd1PROG: fracdecLANG: C++*/#include #... 阅读全文

posted @ 2015-09-08 21:04 insaneman 阅读(157) 评论(0) 推荐(0)

2015年9月7日

usaco Bessie Come Home

摘要: 题意是给一个牧场,牧场当中有好多牧区,每个牧区用一个英文字母表示,大写的字母代表的牧区里各有一头牛,小写的没有,大写Z代表牛吃饭的地方。牛以相同的速度往吃饭的地方走,问哪个牧区的牛先到,并输出这头牛走过距离解法是以Z为起点求一遍单源最短路径。找到里的最近的那个大写字母所代表的那个牧场。/*ID: m... 阅读全文

posted @ 2015-09-07 21:11 insaneman 阅读(183) 评论(0) 推荐(0)

2015年9月6日

usaco Cow Tours

摘要: 题意是给出一个不连通的图,然后定义了一个直径:联通分量里最短距离最长的两个点之间的距离。求将一个不连通的图中的两个连通分量连接,生成的这个新分量的直径最小可以有多小,输出这个新直径。做法是想用Floyd求出任意两点之间的最短距离,然后求出每个点到未生成新图之前的这个点所在分量的最远的一个点的距离。然... 阅读全文

posted @ 2015-09-06 19:12 insaneman 阅读(324) 评论(0) 推荐(0)

usaco Overfencing

摘要: 题意是给一个二维的迷宫,求任意一个点以最优方案走到出口的步数。求这些点中里出口最远的一个点的步数。迷宫有两个出口。做法是从两个出口各做一遍宽度优先搜索,然后就得到了所有点离当前门口最近的距离。在step数组中记录下最短距离,然后两边宽搜取最小值。然后遍历step数组,输出最大的一个就是答案。/*ID... 阅读全文

posted @ 2015-09-06 11:36 insaneman 阅读(223) 评论(0) 推荐(0)

2015年9月5日

usaco The Tamworth Two

摘要: john和牛在二维的图里面跑,john要抓住牛。牛和john在遇到墙或者图的边界时都会花一单位的时间顺时针转动90度。否则花一单位时间往前走一格,当牛和john走到同一个格子中时,john抓住了牛。求john抓住牛要多久。抓不住时输出0.一开始想了很久如何判断抓不住的情况,相通了之后还是很简单的。j... 阅读全文

posted @ 2015-09-05 22:17 insaneman 阅读(362) 评论(0) 推荐(0)

usaco Controlling Companies

摘要: 题意是,一个公司A要想可以控制另外一个公司B,必须满足一下三个条件之一1.A等于B。也就是自己控制自己。2.A拥有B的超过百分之50的股份。3.A控制的所有公司拥有B的股份和超过百分之50.求输出所有公司之间的控制关系。不输出自己控制自己的情况。看见求任意两点之间的控制关系,先想到了Floyd,但是... 阅读全文

posted @ 2015-09-05 13:05 insaneman 阅读(289) 评论(0) 推荐(0)

2015年9月4日

usaco Money Systems

摘要: 用给定的面值的纸币,组成总值为N的情况,有多少种组法,每张纸币数量没有限制,思路类似完全背包。dp[i][j]表示在前i中纸币中,组成总值为j的方法数。每次更新时都得枚举,第i张纸币,只用1张时的组合数,只用两张时,用三张时,为了省去枚举的麻烦,可以直接使用完全背包的优化方法。/*ID: moden... 阅读全文

posted @ 2015-09-04 23:35 insaneman 阅读(265) 评论(0) 推荐(0)

usaco Cow Pedigrees

摘要: 题意是,求N,个节点,组成高度为K的二叉树,形态有多少,且每个节点的度要么为0要么为2.这题第一眼看后就知道要dp,但却没找到方程,看了别人题解之后才知道,原来是从分治的思想出发的。dp[i][j]的意思是用i个节点组成高度不超过j的二叉树的形态,那么dp[i][j]=dp[i][j]+dp[k][... 阅读全文

posted @ 2015-09-04 23:26 insaneman 阅读(244) 评论(0) 推荐(0)

usaco Zero Sum

摘要: /*ID: modengd1PROG: zerosumLANG: C++*/#include #include #include using namespace std;int op[10];void output(int limit){ cout<<1; for(int i=0;i<l... 阅读全文

posted @ 2015-09-04 18:49 insaneman 阅读(150) 评论(0) 推荐(0)

导航