
[USACO]
sevenster
= = 水男
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[U]3.1.1 Agri-Net 简单的最小生成树问题Ford
拿以前的代码过来秒掉了,这代码可以作为一块好的模板了......./*ID:sevenst4LANG:C++PROG:agrinet*/#includeusing namespace std;int main(){ freopen( "agrinet.in","r",stdin ); freopen( "agrinet.out","w",stdout ); int原创 2012-02-12 12:20:33 · 590 阅读 · 0 评论 -
[U]3.2.3 Spinning Wheels 模拟
用的最简单的方法过的,赤裸裸的模拟题。估计一下时间复杂度,发现模拟可以做,果断模拟了,不过模拟得不好,太慢了。最好是学会bitset类,这样省空间。用bool要用掉8位.用360位的bitset可以直接判断了,不需要每次扫扫扫...代码果断很丑:/*ID:bysenLANG:C++PROG:spin*/#includeusing namespace std;struct原创 2012-02-17 17:33:47 · 688 阅读 · 0 评论 -
[U]3.3.2 DP
赤裸裸的DP题,简单题。/*ID:bysenLANG:C++PROG:shopping*/#includeusing namespace std;int ticket_No[100][6];int ticket_Num[100][6];int ticket_Money[100];//票的成员,成员的数量,优惠金额int hash[1000];//编号映射 int原创 2012-03-01 22:18:50 · 632 阅读 · 0 评论 -
[U]3.3.5 博弈原理,DP实现
想了很久,看了下题解顿悟了!赤裸裸的使用的博弈的原理,但是却用DP的方法记录状态。收获颇多。/*ID:bysenLANG:C++PROG:game1*/#includeusing namespace std;int sum[101][101];int dp[101][101];int num[101];int max( int a,int b ){ return a>b原创 2012-03-01 22:32:29 · 642 阅读 · 0 评论 -
[U]3.4.3 皮克定理
/*ID:bysenLANG:C++PROG:fence9*/#include#includeusing namespace std;int gcd( int a,int b ){ if( b==0 ) return a; else return gcd( b,a%b );}int main(){ freopen( "fence9.in","r",stdin原创 2012-03-01 22:37:50 · 1161 阅读 · 0 评论 -
[U]3.3.1 欧拉回路
欧拉回路,采用递归的方法。采用递归的方法实现。/*ID:bysenLANG:C++PROG:fence*/#include#include#define MAXN 501#define MAXF 1025using namespace std;int map[MAXN][MAXN]={0};int circuit[MAXF];int nodenum;int ma原创 2012-03-01 22:13:57 · 2332 阅读 · 0 评论 -
[U]3.3.3 麻烦的思路题
骑士走的方式用普通的BFS,保存每个骑士的最短路径。然后枚举每个骑士在每个点接国王,计算路径即可。相当麻烦的考验耐心的题目。/*ID:bysenLANG:C++PROG:camelot*/#include#include#define MAXR 31#define MAXC 27#define INF 0x0FFFFFFFusing namespace std;原创 2012-03-01 22:26:51 · 829 阅读 · 0 评论 -
[U]3.3.4 很不错的DP题
开始没有想法,后来一想,这是一道很明显的DP题,当前点的的边长正方形,决定于左边下面左下角三个点的状态。这样就可以构造出一个更大的方形。/*ID:bysenLANG:C++PROG:range*/#includeusing namespace std;int min( int a,int b ){ return a<b?a:b; }int min( int a,int b,i原创 2012-03-01 22:30:25 · 591 阅读 · 0 评论 -
[U]3.4.1 蛋疼的计算几何,二分
采用二分的方法,查找是否可见对面的篱笆。左边,右边两方收缩,采用点积叉积判断是否相交。代码很丑.... 无视.../*ID:bysenLANG:C++PROG:fence4*/#include#include#include#define MAXP 201#define ERROR 1e-6using namespace std;struct Point{原创 2012-03-01 22:36:11 · 631 阅读 · 0 评论 -
[U]3.4.2 简单的递归题
拷的POJ的代码,直接A了。/*ID:bysenLANG:C++PROG:heritage*/#include#include#include#includeusing namespace std; ifstream fin("heritage.in"); ofstream fout("heritage.out"); int strlen( char *原创 2012-03-01 22:37:12 · 676 阅读 · 0 评论 -
[U]3.2.5 Magic Squares 康托展开+BFS
这题和八数码十分相似,或许是我的遗留问题吧....敲完总是不过,各种错误。迟迟下不了手的原因就在于对空间的把握问题。要节约空间就必须设计一个好的hash函数,不然时空开销大。关键在于哈希怎么弄了?八位数--->87654321如果采用这么大的空间,空间消耗太大,许多内存都没采用,不行... 后来查了下资料,发现有康托展开恰好是结果全排列的哈希问题。有了康托展开之后,全排列的问题就可以采用最小的原创 2012-02-17 18:01:24 · 2360 阅读 · 0 评论 -
[U]3.2.4 Feed Ratios 枚举
简答的枚举题,其他的不多说了....切掉之后看了下题解,复习了一遍高斯消元法和克莱姆法则。发现还是数学方法好啊。虽然枚举很省coding时间,于是乎,抱着节省code时间的态度,决定开始用模板类.....克莱姆法则有几条重要的1.非齐次线性方程,系数矩阵D=0时,有无穷多解。D≠0时,有唯一解。2.齐次线性方程.系数矩阵D=0时,有解。否则无解。另外克莱姆法则的时间效率低,原创 2012-02-17 17:43:29 · 791 阅读 · 0 评论 -
[U]3.2.6 Sweet Butter 枚举+SPFA
赤裸裸的SPFA模板题... 有点小失误,变量弄错了... 囧~枚举集合点,A之~ 原来用的Floyd结果超时了..../*ID:bysenLANG:C++PROG:butter*/#include#include#define INF 0x7FFFFFFF#define MAXP 801#define MAXC 1500using namespace std;st原创 2012-02-18 14:24:33 · 775 阅读 · 0 评论 -
[U]3.1.2 Score Inflation 赤裸裸的多重背包问题
如题:前段时间看了点背包九讲,没能沉住气看完,后面还是要好好加工一下啊。这种背包水题还是能秒掉的。/*ID:sevenst4LANG:C++PROG:inflate*/#include#define MAXT 10000#define MAXP 10000using namespace std;int dp[MAXT+1];int t[MAXP+1];int f[M原创 2012-02-12 12:23:09 · 684 阅读 · 0 评论 -
[U]2.4.5 Fractions to Decimals 简单的语言控制题
简单的语言控制,考察代码的熟悉程度。代码比较丑陋,但是能ac....../*ID:sevenst4LANG:C++PROG:fracdec*/#includeusing namespace std;struct node{ int num; int left;}p[100000];bool flag[100001];int main(){原创 2012-02-12 12:18:36 · 821 阅读 · 0 评论 -
[U]3.1.5 Contact 小技巧题
刚开始做这题的时候思路错了, 把他想成字符串模式匹配题了。通过构建长度在[A,B]之间的字符串,然后再对主字符串进行模式匹配,想想要用kmp算法,对于这个我还不是很懂.... 打算好好学习一下kmp,后来估计了一下时间,发现必须超时。转而一想:其实需要的只是在主字符串中的一些子集,通过直接遍历主字符串长度为len(A怎么解决呢?可以通过添加前导'1',区别开来。再在输出的时候忽略前原创 2012-02-12 16:28:48 · 2005 阅读 · 0 评论 -
[U]2.4.4 Bessie Come Home 简单最短路问题
很简单的最短路问题,其中的关键就在于有些农场是没有牛的,这些农场可以走,但不能算在最终答案中,毕竟题中需要的是牛的最短路径。将'Z'点作为源点,进行一次赤裸裸的单源点最短路径,就可以得出答案了。代码中我用一个hash函数把所有的字母下标点都规整到[1,52]这个范围内。/*ID:sevenst4LANG:C++PROG:comehome*/#include#define INF原创 2012-02-12 12:16:02 · 1115 阅读 · 0 评论 -
[U]3.1.6 Stamps 会错意的DP题
3章第一节有道题敲不出来啊~~~没办法,只能把后面的题先给敲咯~这个题呢...首先本巨菜想了一个很傻很水很烂的DP方程。使得自己的程序果断崩了...开了一个10001*200的二维boolean数组,[面额][张数]这样来DP,因为最大的面额只有10000 ,再通过循环数组的方法,勉强使得空间不爆掉,结果过了9个点,第10个点果断超时。后来牌桌子一想!可以变成一维DP!a[原创 2012-02-12 16:44:22 · 592 阅读 · 0 评论 -
[U]3.1.4 Shaping Regions 递归,计算几何
一道很有意思的题目。只是今天的课程比较紧张,中午敲了下题,下午上完课后接着敲了下题。改了些bug,终于还是过了。鼓励一下~解题思路:题目大意是矩形覆盖问题,求最终见到的各种颜色矩形的面积。由于矩形比较多1000个而且坐标范围用点阵表示会爆空间。题中给的Hints也是含混不清。在队友提点下,终于到了解决的办法。用递归,因为题中有很明显的子问题性质,当前色块的矩形被上面的矩形覆盖之后可以分割成原创 2012-02-13 17:56:45 · 808 阅读 · 0 评论 -
[U]3.2.1 Factorials 有点点意思的水题
以前在XTU的比赛中做过这个题,当时没过,到后面还是用了个猥琐的方法过的。可能是不记得了当时用的高精度法没过,这次看到这题直接采用赤裸裸的高精度,结果... 在本地跑那速度.....= =||||于是乎,还是采用了猥琐的方法;但是为什么每次mod100000呢??而每次mod10000就WA呢?解释:首先我们不能采用赤裸裸的保留末位非零数的方法。原因:进位,使得末位为0;而在一原创 2012-02-13 21:31:50 · 619 阅读 · 0 评论 -
[U]3.2.2 Stringsobits 组合,递推
很快就发现了这题的递推特性。简直是赤裸裸啊~定义一个数组( [串长度][串中'1'的个数]=种类数 )这就是一个排列啊~用一个简单的递推方程求解出来C(n,i)=C(n-1,i)+C(n-1,i-1);然后从首位n开始判断,∑C[n-1][i] ( i∈[0,l] )若和大于等于当前的第k个数则说明,右边的n-1位足够提供题中所需的数量,因此当前位为'0';若右边n-1位不原创 2012-02-13 21:41:26 · 686 阅读 · 0 评论 -
[U]3.4.4 3维DP
终于会写DP了,这种水水的还是能写的~ 嘿嘿~/*ID:bysenLANG:C++PROG:rockers*/#includeusing namespace std;int DP[21][21][21];int time[21];int N,T,M; int max( int a,int b ){ return a>b?a:b; }int getDP( int k原创 2012-03-01 22:39:03 · 724 阅读 · 0 评论