usaco
文章平均质量分 68
zhangw358
这个作者很懒,什么都没留下…
展开
-
usaco 1.22
简单的枚举,一开始看了一下觉得和以前的魔板差不多,果断开始广搜,结果发现每个操作仅能一次,审题啊。。1-5之间有联系,转4个90度就相当于转回来。。/* ID: zhangw31PROG: transformLANG: C++*/#include #include #include using namespace std;const int MAXN = 11;int原创 2014-02-27 20:15:11 · 424 阅读 · 0 评论 -
usaco 2.1
进入第二章:上来就是一个比较繁琐的图论,求迷宫的最大联通块,然后允许拆一块墙,在求一次此时的最大联通块求联通块:dfs+枚举每一块墙, 要注意的是题目说要尽量靠西的答案,和尽量靠南的答案,那么在枚举墙的时候应for (int j = 1; j for (int i = N; i > 0; i--)通过自底向上,从左到右枚举就省去了比较2: 每面墙会在两个小块内原创 2014-03-22 19:43:36 · 393 阅读 · 0 评论 -
usaco 1.4 枚举&搜索
the clocks 这道题题面上是一个搜索类型的题,有9个时钟,每个时钟有4个状态,现在有9种操作,每种操作可以改变某些时钟的状态,问什么时候9个时钟都到状态0,一开始没有多想就写了个BFS,但是效率太低了,主要是深搜没有状态判重。。比如同一个操作最多就做3次,第四次做完以后就相当于没做,BFS没考虑这个的话就会陷入低效。有了每种情况都只有3次,另外一种思路就是枚举,用到二进制位操作,程序原创 2014-03-07 13:43:20 · 549 阅读 · 0 评论 -
usaco 1.33
50min N^5 的枚举 (N要注意的是for循环里的临时变量,不能直接+= 。。debug花了些时间 ,下次注意/*ID: zhangw31PROG: crypt1LANG: C++*/#include #include #include using namespace std;int N, answer;int num[10];set s;原创 2014-03-04 21:40:05 · 414 阅读 · 0 评论 -
usaco 1.32
1.求最长回文子序列: 我的想法是2重for遍历string的子序列用assign(s.begin() + i, s.begin() + j) 求子序列,但是貌似复杂度太高。。再想想原创 2014-03-01 23:09:28 · 451 阅读 · 0 评论 -
usaco 1.31
两道经典贪心题,第二题WA一次,原因是M(屋顶数), C(牛所在数) 的大小关系没考虑到M>C的情况原创 2014-03-01 12:01:53 · 401 阅读 · 0 评论 -
usaco 1.24
1.2的第4第5题都考察了10进制转X进制的问题,用以前的模板套一下就好了/*ID: zhangw31PROG: palsquareLANG: C++*/#include #include #include #include using namespace std;int base;string tentox (int num, int syst){ strin原创 2014-03-01 10:54:55 · 406 阅读 · 0 评论 -
usaco 1.23
1.深搜,dfs写得丑了点,但是够用了。2.string去掉末尾字符的方法/*ID: zhangw31PROG: namenumLANG: C++*/#include #include #include #include using namespace std;string legalname;string number;string testname;int原创 2014-02-28 21:16:22 · 405 阅读 · 0 评论 -
usaco 1.21
1. 1000000的数据量,就像用一维数组模拟,一开始处理不好边界条件。。还以为一维数组模拟行不通现在前开后闭搞定2. 线段树的经典引例。/*ID: zhangw31PROG: milk2 LANG: C++*/#include #include using namespace std;int N;int timeInter[1000005];int a, b, ma原创 2014-02-26 09:43:15 · 444 阅读 · 0 评论 -
usaco 1.5
chapter 1.5 的内容还是比较多的Number Triangles: 简单的动态规划,方程:对自顶向下的总和sum sum[i][j] = max{sum[i-1][j], sum[i-1][j+1]} + number[i][j]/*ID: zhangw31PROG: numtriLANG: C++*/#include #include #include usi原创 2014-03-22 19:34:30 · 421 阅读 · 0 评论