国庆七天乐 Day7
摘要:今天做的是湖南省2010年省赛题,悲催的只出了四题...今年省赛堪忧!先做Codeforce去了...A:汽水瓶有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?推算一下会发现最后的答案是n/2。#include <stdio.h>int main(){ /
阅读全文
posted @
2012-10-07 23:41
找回失去的
阅读(975)
推荐(0)
国庆七天乐 Day6
摘要:今天做的是湖大2010年的校赛,说实话,这套题对我来说还是很难的。直到224分钟才签到。大叔还戏称文件夹取名不好,AK,结果只出了A和K两道水题...先占个地方去睡觉,明天补全A:Convolution Codes这道题题目很长,放上来了卷积公式,当时认为不会就没看,结果到后面发现不得不看了。大致意思就是给出两个长度为7的序列,P1,P2,然后输入一个序列A,长度1000以内,定义B = A 和P1的卷积,C=A和P2的卷积,然后按照B1C1B2C2这样的顺序输出,这也暴露了我的一个问题,发现题目长不敢去看题,其实有时候这是水题。#include <stdio.h>#include
阅读全文
posted @
2012-10-06 23:55
找回失去的
阅读(198)
推荐(0)
国庆七天乐 Day5
摘要:今天做的是第五届河南省省赛,我挫到爆了,只出了三题,都是水题,个人赛垫底。先总结一下,今天写最水的A题居然WA了两次,关键是调了半个小时,浪费了不少时间,也影响了心情。然后做的是同样水的F题,还好敲的比较快,也顺利一A。然后剩下三个多小时在梦游,将D题敲到了200多行,WA了2次,中途去写了G题,结果题意看错了,WA了1次,看各位大牛已经A到了7题,又回来写D题,还是WA,最后才想到B题过的人也那么多,所以去写B题,WA了两次才A。惨不忍睹!A:奇怪的排序将一个数组的所有数翻转,然后从小到大排序,输出排序后的结果,例如13翻转成31,超级水的一道题,真心不应该#include <stdi
阅读全文
posted @
2012-10-05 17:11
找回失去的
阅读(253)
推荐(0)
国庆七天乐 Day4
摘要:今天做的是吉林的省赛,我们队最后出了六题,其他队都是七题以上,感觉我坑了。A:Welcome, 2008这是一道签到题吧,陈兴看完就敲了,顺利一A。我后面也写了一下:#include <stdio.h>int main(){ int n, h; while(scanf("%d", &n), n) { h = n << 1 | 1; for(int i = 1; i <= h; i ++) { if(i == 1 || i == n + 1 || i == (n << 1 | 1)) { ...
阅读全文
posted @
2012-10-04 23:53
找回失去的
阅读(212)
推荐(0)
国庆七天乐 Day3
摘要:今天做的是山东第一届省赛,题目比昨天的容易,但是还是出了五道题,难道难题都只能叫大叔来做?A:Phone Number给出N个字符串,判断是否存在一个字符串是另一个字符串的前缀,之前做过一道类似的题,字典树判断前缀确实很方便。#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct{ int next[10]; int alr, end;}Trie;Trie t[110000];int tp, n;int insert(char *x, int site){ if(t[site].
阅读全文
posted @
2012-10-03 16:56
找回失去的
阅读(200)
推荐(0)
国庆七天乐 Day2
摘要:今天做的是辽宁2010年的省赛题。题目难度比昨天容易了不少。悲哀的是,我们队只把前四道水题做出来了,后面还有两道相对容易的题没做出来。A :DinnerA题是我敲的,开始看到题的时候还愣了一下,后面看到hint的提示,才发现如此之水。题意大致是给你N个盒子,盒子里面放着一样东西,如果是餐具就输出,注意下格式就可以,餐具在hint中给出了,才四种...#include <stdio.h>#include <string.h>#include <stdlib.h>const char table[][15] = {"bowl", "
阅读全文
posted @
2012-10-02 15:46
找回失去的
阅读(178)
推荐(0)
国庆七天乐 Day1
摘要:国庆这几天都是做比赛,从今天的情况来说,感觉我还是弱了一点,有些该出的题没做出来,模拟题做得比较少,该考虑的情况没有考虑,所以E题写了一半,脑子就乱了没写下去,交给了队友。有一种感觉是学了的东西用不上,或者说不会用,还有好多东西没学。POJ 3311Hie with the Pie这道题其实隽遒学弟的思路没有错,先floyd求出任意两点间的最短路,然后就是旅行商问题(哈密顿回路),也可以说是状态压缩DP。最多一共就2的11次方乘以10种状态,用f[i][j]表示第i种状态处于j点的最小代价,我们要求的就是f[(1 <<(n + 1) - 1)[0],从零点出发回到零点。#inclu
阅读全文
posted @
2012-10-01 23:43
找回失去的
阅读(207)
推荐(0)
2012/8/9 关于今天的比赛
摘要:A大数运算大数模版写得不熟,然后出了不少错误,准备自己写一个模版。G拓展欧几里德求逆元这道题公式没推错,代入参数搞错了,然后一直在调,浪费不少时间。I求线段交点很普通的计算题,WA了6次,最后才A掉,计算时没有考虑double比较大小的细节,手写的fabs没过。今天就A了三道最水的题,比较让我失望,I题不应该错这么多次,细节决定成败,这句话放在哪都没错,因为这样WA掉罚时真的很不值。希望明天比赛顺利,然后进入校队。A:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<iostre
阅读全文
posted @
2012-08-09 17:08
找回失去的
阅读(253)
推荐(0)
逆序数及其求法
摘要:转自http://www.2cto.com/kf/201111/111542.html1. 逆序数所谓逆序数,就是指一个序列S[i],统计处于序列的每个数的比这个数大并且排在它前面的数的数目,然后对于所有数,把这个数目加起来求和就是了。比如4 3 1 24第一个,所以数目为03的前面是4,大于3的数目为11的前面是4 3 ,大于1的数目为22的前面是4 3 1,大于2的数目为2所以逆序数为1+2+2 = 5求逆序数的两种方法常规方法是按照逆序数的规则做,结果复杂度是O(n*n),一般来说,有两种快速的求逆序数的方法分别是归并排序和树状数组法2. 归并排序归并排序是源于分而治之思想,详细的过程可
阅读全文
posted @
2012-08-07 16:20
找回失去的
阅读(6330)
推荐(0)
判断线段规范相交
摘要:算是学了一个模版吧#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>const double eps = 1e-8;struct point{ double x, y;};point a, b, c, d;inline int dcmp(double d){ if(fabs(d) < eps) return 0; return d > 0 ? 1 : -1;}inline double det(double x1, double y1, doubl
阅读全文
posted @
2012-08-07 10:01
找回失去的
阅读(254)
推荐(0)
快速幂取模
摘要:看到一个快速幂取模的模版,挺好用的,为了避免中间过程超int,我全部用longlong。#include<stdio.h>#include<string.h>#include<stdlib.h>typedef long long LL;const LL c = 10007;LL a, b;LL exp_mod(LL a, LL b, LL c){ LL r = 1; if(a > c) a %= c; while(b) { if(b & 1) r = (r * a) % c; a = (a * a) % c; b >>= 1; ..
阅读全文
posted @
2012-08-06 09:39
找回失去的
阅读(241)
推荐(0)
强连通分量 Kosaraju PK Tarjan(转)
摘要:转自scameeling的空间http://hi.baidu.com/scameeling/item/b135831094ec756771d5e815强连通分量 Kosaraju PK TarjanKosaraju算法对每个不在树中的点开始DFS一次,并记录离开各点的时间,这里是离开的时间,而不是到达时的,比如有图1->2 2->3 则1,2,3分别对应的时间是3 2 1,因为3没有出边,所以最先离开,其次是2,最后是1,DFS后,在同一棵树中的点,如果dfn[v]>dfn[u]则说明点从v有可能到达u,而这棵树中的dfn[]最大的点,肯定可以到达每个点,从而在原图的逆图中,
阅读全文
posted @
2012-07-30 14:13
找回失去的
阅读(165)
推荐(0)
各种图论模型及其解答(转)
摘要:原文转自Jelline bloghttp://blog.chinaunix.net/uid-9112803-id-411340.html摘要:本文用另一种思路重新组织《图论及其应用》相关知识。首先,用通俗化语言阐述了如何对事物间联系的问题进行图论建模;接着从现实例子出发,给出各种典型图论模型,每种图论模型对应于图论一个重要内容;再者,介绍相关知识对上述提到的图论模型涉及的问题进行解答;最后,补充一些图论其他知识,包括图论分支、易混概念。符号约定:Q(Question)表示对问题描述,M(Modeling)表示数学建模过程,A(Answer)表示原问题转化为何种图论问题。一、引言图论是研究点、线
阅读全文
posted @
2012-07-29 14:32
找回失去的
阅读(4354)
推荐(0)
LightOJ 1002 Country Roads
摘要:http://lightoj.com/volume_showproblem.php?problem=1002求最长路径的最小值,用优先队列的dijkstra。#include<cstdio>#include<cstring>#include<cstdlib>#include<queue>#include<algorithm>using namespace std;const int MAXN = 1 << 9;int dist[MAXN], g[MAXN][MAXN];int n, m, t;const int inf =
阅读全文
posted @
2012-07-28 17:09
找回失去的
阅读(579)
推荐(0)
LightOJ 1019 Brush (V)
摘要:http://lightoj.com/volume_showproblem.php?problem=1019裸的dij,注意两点之间有多条边,因为这个WA了一次。#include<cstdio>#include<cstring>#include<cstdlib>#include<queue>#include<algorithm>using namespace std;const int MAXN = 1 << 7;int d[MAXN], g[MAXN][MAXN];const int inf = 0x3f3f3f3f;i
阅读全文
posted @
2012-07-28 17:05
找回失去的
阅读(236)
推荐(0)
两道趣题话贪心(转)
摘要:转自小驰的博客。去年认识的小驰,当时水平还差不多,现在我被远远甩在了后面,悲哀!http://www.cnblogs.com/njuzyc/两道好玩的问题及我对“贪心思想”看法贪心是一种思想,所以我感觉给它下严格的定义不太合理。//要细致地研究它严格的定//义当然是必不可少的在最优化问题中,贪心思想指每次决策都选择当前最优解,而不用考虑全局的情况。贪心法是一种很高效的算法,但是容易知道贪心算法不一定正确,即从局部最优解不一定能够构造出全局最优解。所以说,贪心的难点之一便是 贪心 正确性的证明。总结出什么样的问题是能够用贪心法解决 是一件很困难的事情,不过大神们也弄出了一套名为“矩阵胚”的理论,
阅读全文
posted @
2012-07-26 17:02
找回失去的
阅读(554)
推荐(0)
RNQOJ 98 逃亡的准备
摘要:http://www.rqnoj.cn/Problem_98.html裸的多重背包#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int N, V;const int MAXV = 1 << 9;int f[MAXV];void ZeroOnePack( int f[], int C, int W){ int v; for( v = V; v >= C; v --) f[v] = max( f[v], f[v - C] + W);}void Co
阅读全文
posted @
2012-07-20 18:02
找回失去的
阅读(189)
推荐(0)
RNQOJ 217 [NOIP1999]拦截导弹
摘要:http://www.rqnoj.cn/Problem_217.html#include<cstring>#include<cstdlib>#include<cstdio>const int MAXN = 1005;int s[MAXN], top, t[MAXN];int cnt, hight[MAXN], cur;int N;int main(){ while( scanf( "%d", &N) == 1) { cnt = 1, top = 1; for( int i = 1; i <= N; i ++) { sc...
阅读全文
posted @
2012-07-20 17:59
找回失去的
阅读(246)
推荐(0)
RQNOJ 金明的预算方案
摘要:http://www.rqnoj.cn/Problem_6.html#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int MAXN = 32100;const int MAXM = 65;int f[MAXM][MAXN];int c[MAXM][3], w[MAXM][3];int n, m;void Pack(){ int i, j; for( i = 1; i <= m; i ++) for( int j = 0; j <= n;
阅读全文
posted @
2012-07-19 18:29
找回失去的
阅读(157)
推荐(0)
ACdream OJ 1140 Counting Triangles
摘要:给出N条边,问这些边能组成多少个不同的三角形,每条边的长度是不同的。首先我们先将边长按照升序排序,然后枚举两条短的边,看最长边有多少种可能,累加。#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#include<algorithm>using namespace std;const int MAXN = 2012;int T, N;int a[MAXN];int b_s( int len){ int left = 0, right = N - 1;
阅读全文
posted @
2012-04-23 10:49
找回失去的
阅读(360)
推荐(0)