- 博客(21)
- 收藏
- 关注
原创 [HNOI2002]营业额统计
花了一天钻研了splay,然后发现splay没我想象的那么难……以前都是写SBT来着…… 但是splay的速度确实没那么快,但是真的挺好写的~我写的版本测了这题以后又用了一下别人的splay,发现通过这题大多数splay在750ms上下,我是688ms,说明还算是不错的啦~啦啦啦~#include #include #include #include using name
2015-01-26 17:07:25 369
原创 USACO 2.1 Sorting a Three-Valued Sequence
最快的方法当然是O(n)了先桶排一下,知道多少个1,多少个2,多少个3. 这样我就知道,有多少个2和多少个3在1的位置上~a[i][j]表示,在有多少个i在j的位置上那么如果tmp = min(a[i][j] , a[j][i]), 显然至少要tmp次才可以把他们这一组数组交换位置。那么就要进行那么几次配对,把可以直接交换位置的全部交换完毕。 这些是不可能
2015-01-25 12:22:00 349
原创 USACO 2.1 Ordered Fractions
Executing... Test 1: TEST OK [0.005 secs, 3564 KB] Test 2: TEST OK [0.005 secs, 3564 KB] Test 3: TEST OK [0.005 secs, 3564 KB] Test 4: TEST OK [0.005 secs, 3564 KB] Test 5: TEST OK [0.0
2015-01-25 11:24:15 335
原创 USACO 2.1 The Castle
BFS用洪水填充染色。 记录每个颜色的房间数量 然后按照从下往上,从左往右的顺序穷举一边,拆掉墙,如果墙两边的房间颜色相同,跳过。 颜色不同,把颜色所代表的房间数量相加,和答案对比,更新答案即可。Compiling...Compile: OKExecuting... Test 1: TEST OK [0.008 secs, 3572 KB] Test 2:
2015-01-25 10:45:25 456
原创 USACO 1.4 Checker Challenge 位运算
Test 1: TEST OK [0.003 secs, 3372 KB] Test 2: TEST OK [0.003 secs, 3372 KB] Test 3: TEST OK [0.003 secs, 3372 KB] Test 4: TEST OK [0.003 secs, 3372 KB] Test 5: TEST OK [0.003 secs, 3372 KB
2015-01-24 10:50:07 616
原创 USACO 1.5 Superprime Rib
直接穷举一下,一边穷举一边判断…… 几乎瞬间出答案。 当然如果是比赛,打表才是最好的选择。/*TASK:sprimeLANG:C++*/#include #include int n;inline bool check(int k){ for (int i = 2; i <= sqrt(k); ++ i) if (k % i == 0) return false;
2015-01-24 00:37:35 627
原创 USACO 1.4 Prime Palindromes
构造所有回文再判断。 时间不完美。Executing... Test 1: TEST OK [0.024 secs, 3504 KB] Test 2: TEST OK [0.027 secs, 3504 KB] Test 3: TEST OK [0.027 secs, 3504 KB] Test 4: TEST OK [0.024 secs, 3504 KB] T
2015-01-24 00:18:35 399
原创 USACO 1.5 Number Triangles 数塔问题
虽然是简单的数塔问题,f[i][j] = a[i][j] + max(a[i-1][j], a[i][j]); 输出max (f[i][j])即可。但是直接开a[1000][1000]占用内存太大,所以使用滚动数组。当然取余的方法是可行的~但是我还是更喜欢用指针的方法,用交换指针的方式来解决数组少的情况…… 具体程序见下~/*TASK:numtriLANG:C++*/#
2015-01-23 23:24:10 448
原创 USACO 1.4 Packing Rectangles
我也是醉了! 早知道直接看英文原文了,看了一个版本的翻译漏了2个核心信息:1 矩阵可以旋转 2:输出的p q有 p程序虽然长,但是挺无脑的,就是模拟。 而且仔细看应该看的出,结构都是一样的/*TASK:packrecLANG:C++*/#include #include #include #include using namespace std;struct poin
2015-01-23 19:07:39 436
原创 USACO 5.3 Network of Schools
tarjan标准题。 直接tarjan即可。思考一个问题:添加多少个边让图变为连通图。 Test 1: TEST OK [0.003 secs, 3512 KB] Test 2: TEST OK [0.003 secs, 3380 KB] Test 3: TEST OK [0.003 secs, 3512 KB] Test 4: TEST OK [0.005
2015-01-22 23:20:07 460
原创 USACO 1.4 The Clocks
虽然很多方法都一个意思……但是我因为算错2^27,认为爆int就没用位运算……然后傻呼呼的居然在压十进制位在做BFS……在USACO上TLE,但是其他OJ一般卡时内能过……9个数字分解为0123,然后用一个9位数保存…… 大量时间浪费在拆解数字上……/*TASK:clocksLANG:C++*/#include #include #include #include
2015-01-22 21:10:13 457
原创 USACO 1.4 Mother's Milk
记忆化搜索即可……f[i][j][k]表示这个状态是否到达过……/*TASK:milk3LANG:C++*/#include #include using namespace std;bool f[22][22][22] = {0};bool ans[22] = {0};int A, B, C;inline void change(int &a,int &b,
2015-01-22 19:11:06 353
原创 USACO 1.4 Arithmetic Progressions
这题略有点繁琐啊- - 先构造出所有的双平方数字在a数组里,p[i]表示i这个数字,在a数组的下标穷举公差……但是公差其实是有范围的(小优化一下)直接在双平方数字基础上穷举,用公差计算出的新的数字,在O(1)时间内判断出,是否还是双平方数…… 然后倒着算一下就行了。 程序自我感觉还算短……我没啥剪枝的说,下次想想。这个很慢了……别人都0.4秒Executing... Te
2015-01-22 17:53:55 395
原创 USACO 1.3 Ski Course Design
直接穷举区间就行了- - 从[0, 16] 到[1, 17]之类的, 直接暴力一下……/*TASK:skidesignLANG:C++*/#include #include using namespace std;int n, tub[101]={0},ans(0x7fffffff), st;int main(){ freopen("skidesign.in",
2015-01-22 15:35:59 414
原创 USACO 1.3 Wormholes
看似是水题,反正我用了2小时才AC……愁死了……而且看题解好像很简答的样子,但是我又没看懂啊啊啊啊啊啊啊……拆点,DFS穷举所有情况,然后tarjan判环…… 顺便复习了tarjan..但是显然判断是否有环有更好的办法。 比如题解的方法……回头研究一下题解的方法,看起来非常简单的样子。题解穷举所有配对的方法也简单高效……/*TASK:wormholeLANG:C++
2015-01-22 15:12:05 635
原创 USACO 1.3 Combination Lock
难道是USACO更新新加的题?我以前好像没写过这题啊!直接穷举判重,省事直接用map解决。/*TASK:comboLANG:C++*/#include #include #include using namespace std;int n;struct num{ int a, b, c; num(int A, int B, int C):a(A)
2015-01-21 22:24:45 432
原创 USACO 1.3 Prime Cryptarithm
直接穷举搜索,剪枝。 不想剪了,反正不会TLE。/*TASK:crypt1LANG:C++*/#include #include using namespace std;int n, ans(0);int a[10];int b[100]={0};int main(){ freopen("crypt1.in", "r", stdin); freopen("
2015-01-21 21:40:51 458
原创 USACO 1.3 Mixing Milk
直接排序贪心,没啥好说的。 可以桶排优化,但是省事直接SORT了/*TASK:milkLANG:C++*/#include #include #include using namespace std;const int max_m = 5000;paira[max_m];int n,ans(0), m;int main(){ freopen("milk.in"
2015-01-21 21:05:01 347
原创 USACO 1.3 Barn Repair
典型的贪心问题/*ID:xueyifa4PROG:barn1LANG:C++*/#include #include #include using namespace std;int a[205], b[205];int m, s, c, ans;int main(){ freopen("barn1.in", "r", stdin); freopen("b
2015-01-21 20:19:29 481
原创 USACO以前的1.3.3 [calfflac] 后缀树组方法
后缀数组构造出的height数组,利用RMQ可以解决回文串问题。后缀数组的构造需要在后面加一个ASCII码很小的东西,回文串中间也加一个特殊字符比如#aabbaa 构造后就是 aabbaa#aabbaa*abcd构造后就是 abcd#dcba*大概就这些笔记了……然后就是利用height数组的性质来用平衡树解决RMQ。 用为我用倍增法,所
2015-01-21 20:14:34 670
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人