07 2013 档案

摘要:强哥写的。原文链接1. 是否需要 long long2. 是否有 除0 的可能3. 是否需要cmp特判精度4. 是否必须使用double,能转化成整数运算么?怎么转换5. 关键部分无序的问题->贪心?sort是否管用?满足怎样的顺序可以找到解(最优解)?满足某一顺序是否可以dp?graph问题?netflow?6. 关键部分变量的取值区间是多少,可以枚举么?7. vriable的取值范围非常大,无法枚举:是否可以仅仅使用给定的vriable(离散化)?最优解是否满足单调性,是否可以二分答案?8. 这个问题是不是某些地方满足什么性质,大胆guess!9. 找规律。。10. 需要使用什么结构 阅读全文
posted @ 2013-07-31 13:45 Naix_x 阅读(291) 评论(0) 推荐(0)
摘要:题目链接这题,真心木啥意思,就是数据里貌似字符有负数,注意gets读入。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 int trie[201][50]; 9 int dp[51][201][201]; 10 int o[301]; 11 int que[201]; 12 int fail[201]; 13 int id[1001]; 14 int t,N; 15 void CL() 16 { 17 t = 1; 18... 阅读全文
posted @ 2013-07-30 10:18 Naix_x 阅读(163) 评论(0) 推荐(0)
摘要:题目链接一个数组开小了一点点,一直提示wa,郁闷,这题比上个题简单一点。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 1001 9 #define INF 1000000 10 int trie[N][5]; 11 int que[N]; 12 int o[1 m)104 {105 i --;106 n -- ;107 ... 阅读全文
posted @ 2013-07-29 20:55 Naix_x 阅读(260) 评论(0) 推荐(0)
摘要:题目链接蛋碎了,开始理解错题意的,以为跟上个题一样要替换。。。然后发现删除我不会啊,然后听宝哥讲了讲转移过程后,也不算难理解,主要是被前面的题给局限住思维了。然后就是漫长的debug过程,手动构造数据,构造的我心碎了,最后看别人代码才发现错误,别人的代码实现方式和我明显不是一个风格的,我看的也很纠结啊。。。在AC自动机构造关系的时候,开始只注意了-999的转移,然后慢慢debug后+上权值的转移,最后才发现999串的转移也要有,折腾了一天,终于过了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #inc... 阅读全文
posted @ 2013-07-29 16:36 Naix_x 阅读(320) 评论(0) 推荐(0)
摘要:题目链接能AC还是很开心的...此题没有POJ2778那么难,那个题还需要矩阵乘法,两个题有点相似的。做题之前,把2778代码重新看了一下,回忆一下当时做题的思路,回忆AC自动机是干嘛的...状态表示dp[i][j]长度为i的以j串为结束的最小改变数目。AC自动机预处理一下,然后DP。卡内存+不知道... 阅读全文
posted @ 2013-07-28 14:01 Naix_x 阅读(217) 评论(0) 推荐(0)
摘要:状态压缩DP,算sum,本来是枚举的,结果TLE了。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MOD 1000000007 8 int p[10001]; 9 int hash[1 0; j -= lowbit(j))39 {40 hash[i] += hash[i-lowbit(j)];41 if(hash[i] > MOD)42 hash[i] -= MOD... 阅读全文
posted @ 2013-07-27 16:30 Naix_x 阅读(220) 评论(0) 推荐(0)
摘要:题目链接比赛的时候一直想用树状数组,但是树状数组区间更新之后,功能有局限性。线段树中的lz标记很强大,这个题的题意也挺纠结的。k = 1时,从a开始,插b个花,输出第一个插的位置,最后一个的位置,一个都没插,输出不能插。k = 2时,将[a,b]区间都清空,输出这个区间上本来有多少朵花。主要是k = 1的时候,很难弄。给出区间[a,b]要找到第一个空花瓶,空花瓶的个数 = 总的-插花的个数这肯定是一个单增的,所以利用二分求下界,这个位置,就是第一个空花瓶的位置,最后一个花瓶的位置需要特判一下,确定是第几个空花瓶,剩下的跟算第一个差不多。主要是很多细节要注意,写代码要各种严谨.... 1 #i. 阅读全文
posted @ 2013-07-27 11:33 Naix_x 阅读(211) 评论(0) 推荐(0)
摘要:果断对Tarjan不熟啊,Tarjan后缩点,求树上的最长路,注意重边的处理,借鉴宝哥的做法,开标记数组,标记自己的反向边。 1 #pragma comment(linker, "/STACK:1024000000,1024000000") 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 200001 9 #define M 2000001 10 #define INF 0x3f3f3f3f 11 struct node 12 { 13... 阅读全文
posted @ 2013-07-27 09:24 Naix_x 阅读(255) 评论(0) 推荐(0)
摘要:题目链接思路就很难想+代码实现也很麻烦,知道算法后,已经写的很繁琐而且花了很长时间,200+,好久没写过这么长的代码了。 1 #pragma comment(linker, "/STACK:1024000000,1024000000") 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std; 10 #define maxn 100101 11 struct node 12 { 13 int l,r; 14 } t... 阅读全文
posted @ 2013-07-26 12:43 Naix_x 阅读(413) 评论(1) 推荐(0)
摘要:题目链接我还是图样啊....比赛的时候没敢暴力去搜... 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL __int64 9 char dp[301][301][301];10 int p[301][301];11 int n,m;12 int dfs(int x,int y,int step)13 {14 int i,j,k;15 if(step == 1)16 return 1;17 else... 阅读全文
posted @ 2013-07-25 19:51 Naix_x 阅读(320) 评论(0) 推荐(0)
摘要:题目链接随机算法使劲水...srand((unsigned)time(0))比srand(NULL)靠谱很多,可能是更加随机。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL __int64 9 int a[501][501],b[501][501],c[501][501];10 int main()11 {12 int i,j,k,flag,n;13 srand((unsigned)time(0));14 ... 阅读全文
posted @ 2013-07-24 21:30 Naix_x 阅读(237) 评论(0) 推荐(0)
摘要:题目链接虽然我不懂... 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define LL __int64 7 LL p[1001],o[1001]; 8 LL x,y; 9 LL ext_eulid(LL a,LL b)10 {11 LL t,d;12 if(b == 0)13 {14 x = 1;15 y = 0;16 return a;17 }18 d = ext_eulid(b,a%b);19 ... 阅读全文
posted @ 2013-07-24 13:39 Naix_x 阅读(182) 评论(2) 推荐(0)
摘要:题目链接本来就对N*log(N)算法不大会....然后各种跪了,求出最长不下降+最长不上升-最少相同元素。求相同元素,用二分求上界搞的。代码里4个二分.... 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int d[200001]; 8 int dd[200001]; 9 int f[200001]; 10 int a[200001]; 11 int same[200001]; 12 int n; 13 int bin1(int size,int x)... 阅读全文
posted @ 2013-07-24 11:19 Naix_x 阅读(362) 评论(0) 推荐(0)
摘要:题目链接概率问题,像是概率论上学的均匀分布,是不是呢,忘了。。。概率同面积有关系,我写的各种搓,然后此题格式十分变态,=前有的时候俩空格,有的时候一个空格。代码各种搓。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define PI 3.141592653 8 #define eps 1e-9 9 int main()10 {11 int t,cas = 1;12 double n,m,d,r,S;13 double t11,t12,t13,t... 阅读全文
posted @ 2013-07-22 21:55 Naix_x 阅读(259) 评论(0) 推荐(0)
摘要:题目链接不1Y都对不住看过那么多年的球。dp[i][j]表示i队进入第j轮的概率,此题用0-1 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 double dp[501][501]; 8 double p[501][501]; 9 int main()10 {11 int n,i,j,mod,c,k,ans;12 double maxz;13 while(scanf("%d",&n)!=EOF)14 {15 if(n = (1<<(i-1)))38... 阅读全文
posted @ 2013-07-22 18:21 Naix_x 阅读(186) 评论(0) 推荐(0)
摘要:题目链接很早之前就看过这题,思路题把,确实挺难想的,黑书248页有讲解。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int p[10001]; 8 struct node 9 {10 int id;11 int x;12 int pos;13 }num[10001];14 int flag[10001],minz;15 int cmp1(node a,node b)16 {17 return a.x < b.x;18 }19 int c... 阅读全文
posted @ 2013-07-22 16:31 Naix_x 阅读(206) 评论(0) 推荐(0)
摘要:题目链接题意很扯,就是给一棵树,每个结点有个值,然后把图劈成两半,差值最小,反正各种扯。2B错误,导致WA了多次,无向图,建图搞成了有向了.... 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define LL __int64 8 struct node 9 {10 int u,v,next;11 }edge[2000001];12 LL p[100001];13 LL dp[100001];14 int first[100001];15 int o[1000... 阅读全文
posted @ 2013-07-22 10:29 Naix_x 阅读(196) 评论(0) 推荐(0)
摘要:以前做过的一个题,忘记/gcd了,看来需要把以前的东西看一下啊。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define LL long long 8 int p[21],flag[21]; 9 LL gcd(LL a,LL b)10 {11 return b == 0?a:gcd(b,a%b);12 }13 int main()14 {15 int n,i,j,ans,num,m;16 LL temp;17 while(scanf(... 阅读全文
posted @ 2013-07-21 20:21 Naix_x 阅读(183) 评论(0) 推荐(0)
摘要:题目链接树形DP很弱啊,开始看题,觉得貌似挺简单的,然后发现貌似还可以往回走...然后就不知道怎么做了...看看了题解http://www.cnblogs.com/wuyiqi/archive/2012/01/09/2316758.html画画题解中的三种情况,还是可以理解的。设dp[0][s][j]表示从s(当前根节点)出发,走 j 步,回到s所能获得的最大权值 dp[1][s][j]表示从s(当前根节点)出发,走j步,不回到s所能获得的最大权值现在我们就可以分配背包容量了:父节点与子节点分配背包容量,从而设计出状态转移方程主要思想:s返回,t返回 s不返回,t返回(走向t子树,t子树返回之 阅读全文
posted @ 2013-07-21 16:41 Naix_x 阅读(300) 评论(0) 推荐(0)
摘要:题目链接扫描线可做,然后当时比赛后问虎哥,他说可以标记,然后拖了很久,今天从早上折腾到晚上,终于把两种情况写出来,分析太弱。改天扫描线,再来一次。被子如果被y = x 穿过,可以分成两部分,上和下,很容易发现这两部分,都是以1递增的,画画图,更好理解,这样注意很多特殊的情况,例如,分不成上下部分,还有穿过后,多着一部分,讨论各种情况就好,静下心来,仔细分析。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 200100 8 #define LL __in... 阅读全文
posted @ 2013-07-20 19:22 Naix_x 阅读(336) 评论(0) 推荐(0)
摘要:题目链接树形DP慢慢来,慢慢学习。这个题,就是树上的背包。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define INF 100000000 8 int dp[501][501]; 9 int first[501];10 int o[501],m,t;11 struct node12 {13 int u,v,next;14 }edge[1000000];15 void CL()16 {17 t = 1;18 memset(first,-1,... 阅读全文
posted @ 2013-07-20 10:36 Naix_x 阅读(190) 评论(0) 推荐(0)
摘要:终于活着回到了实验室,早上下雨了,有些凉,在床上各种不舒服,所以很早就来到了实验室。 总觉得应该写点什么,刚看了看很久没看的reader有几篇写的不错的文章,有一篇是写同桌的,让我想起了以前的同桌,很不一样的,很特别的,在这里默默的祝福你各种顺利。 然后文艺过后,各种吐槽: Web实训由于我的各种无责任感,各种混的心态,导致我们组做的项目貌似是最渣渣的了。HTML,CSS,JS我直接够了,我就做了一点点,浪费很多时间,这样的我,已经不是第一次了。很多次都是没有把责任担当起来,话说wp童鞋,在机房里,忙到快晚上10点,我天天晚上看电影,这是什么心态。。。旁边的yxx学习各种,然后我各种... 阅读全文
posted @ 2013-07-20 10:06 Naix_x 阅读(172) 评论(0) 推荐(0)
摘要:题目链接理解了题意之后,这个题感觉状态转移还是挺好想的,实现起来确实有点繁琐,代码能力还有待加强,经过很长时间才发现bug。注意坐标可能是负的。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int dp[12][40][41]; 8 bool o[12][41][41]; 9 int n,ans,d;10 int gcd(int a,int b)11 {12 return b == 0?a:gcd(b,a%b);13 }14 int fun(int t,int ... 阅读全文
posted @ 2013-07-13 20:41 Naix_x 阅读(243) 评论(0) 推荐(0)
摘要:题目链接两种矿石,Y和B,Y只能从从右到左,B是从下到上,每个空格只能是上下或者左右,具体看图。求左端+上端最大值。很容易发现如果想最优,分界线一定是不下降的,分界线上面全是往上,分界线下面都是往左,然后就发现每一行,只和上一行有关系,DP可搞。应该可以单调队列优化,我直接暴力水过了。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int dp[501][501]; 8 int sum1[501][501]; 9 int sum2[501][501];10 int p1... 阅读全文
posted @ 2013-07-11 21:34 Naix_x 阅读(210) 评论(0) 推荐(0)
摘要:题目链接这个破题,好不容易思路清楚了,写的就是过不了。。关键部分直接抄的别人的。。。终于A了,自己写的判断什么的,就是有一组数据过不了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define INF 0x3f3f3f3f 8 #define LL __int64 9 int dp[3000010];10 struct node11 {12 int x,y;13 } p[5001];14 #define eps 1e-615 int main()16 {17... 阅读全文
posted @ 2013-07-11 20:27 Naix_x 阅读(173) 评论(0) 推荐(0)
摘要:第一次在DIV2 AK了。250水题。500,FLoyd搞出所有边的最短路,然后找最短路,中最长的,如果有不连通的边返回-11000,组合DP,各种慌乱,在最后1分钟时,交上了,感觉很棒,最后还A了。。dp[i][j]表示前i个堆里选j个人,每一个堆都有o[i]个人,枚举堆里,可以选多少个人。第二题,写了将近半个小时。。。没太想好,到底是求最长路还是求最短路,边调边想,浪费些时间。第三题,发现最近做组合问题,不是那么搓了。。。rating涨了131,进div1!!1000的关键代码: 1 dp[0][0] = 1; 2 for(i = 1; i <= m; i ++) 3 { 4 fo. 阅读全文
posted @ 2013-07-10 21:24 Naix_x 阅读(142) 评论(0) 推荐(0)
摘要:题目链接经典DP问题,通过问题,看出结论,然后倒序,然后注意条件。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define INF 100000000 8 int dp[5001][5001]; 9 int p[5001];10 bool cmp(int a,int b)11 {12 return a > b;13 }14 int main()15 {16 int n,m,i,j;17 scanf("%d%d",&m,&n);18 f 阅读全文
posted @ 2013-07-10 14:55 Naix_x 阅读(218) 评论(0) 推荐(0)
摘要:题目链接如果跳,那么这条路上所有的点都在图上。搞一个判断就行。写的不好,各种没状态,直接暴力水过。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 struct node 8 { 9 int x,y;10 } p[5001];11 bool flag[5001][5001];12 bool cmp(node a,node b)13 {14 if(a.x == b.x)15 return a.y = 1&&p[i].y-y = 1)41 ... 阅读全文
posted @ 2013-07-09 19:54 Naix_x 阅读(182) 评论(0) 推荐(0)
摘要:题目链接大体思路看,黑书。。。其他就是注意搞一个in数组,这样记忆化搜索,貌似比较快。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define INF 0x7fffffff 7 int p[10][10],sum[10][10]; 8 double dp[11][11][11][11][21]; 9 int in[11][11][11][11][21];10 double s[11][11][11][11];11 int dfs(int x1,int y1,int x2,int y2,in... 阅读全文
posted @ 2013-07-09 14:51 Naix_x 阅读(211) 评论(0) 推荐(0)
摘要:题目链接被以前的题目惯性思维了,此题dp[i][j],代表i到j这一段变成回文的最小花费。我觉得挺难的理解的。 1 #include 2 #include 3 #include 4 using namespace std; 5 int dp[2015][2015]; 6 char s1[2011]; 7 int hash[201]; 8 int main() 9 {10 int n,m,i,j,a,b;11 char ch[3];12 while(scanf("%d%d",&n,&m)!=EOF)13 {14 scanf("%s",s1) 阅读全文
posted @ 2013-07-08 16:54 Naix_x 阅读(146) 评论(0) 推荐(0)
摘要:题目链接调了一上午,单步的效率太低了,特别是在有递归的情况下。。。下午来了,输出调试了下,就发现bug了,各种混乱啊。比较高兴的事,1Y了。本来还准备用edge1优化一下的,结果完全没用到。。 1 #include 2 #include 3 #include 4 using namespace std; 5 struct node 6 { 7 int x1,y1,x2,y2,c; 8 } p[21]; 9 struct n1 10 { 11 int u,v,next; 12 } edge1[2000],edge2[2000]; 13 int first1... 阅读全文
posted @ 2013-07-08 14:07 Naix_x 阅读(291) 评论(0) 推荐(0)
摘要:题目链接记录路径的DP,看的别人的思路。自己写的也不好,时间居然2000+,中间的取余可以打个表,优化一下。写的各种错,导致wa很多次,写了一下午,自己构造数据,终于发现了最后一个bug。dp[i][j]表示前i位取余得到j,需要最少改变多少位。这样可以得到最少改变多少位了,但是,还要保证,最小。学习别人的题解,开一个标记数组,先从后倒回来,把这些可以达到最小的路径都记录下来。然后再从头找最小的那一条路径。这样就能保证,最小了。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define INF 10000... 阅读全文
posted @ 2013-07-07 17:19 Naix_x 阅读(296) 评论(0) 推荐(0)
摘要:题目链接用STL实现超时了,用普通队列500+,看到spfa,反应太迟钝了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define INF 0x7fffffff10 int d[101][10001];11 int first[101];12 bool in[101][10001];13 int q1[10000001];14 int q2[10000001];15 int t,k,n;16 struct node1... 阅读全文
posted @ 2013-07-06 19:08 Naix_x 阅读(284) 评论(0) 推荐(0)
摘要:题目链接点和边 都很少,确定一个界限,爆搜即可。判断点到达注意一下,如果之前已经到了,就不用回溯了,如果之前没到过,要回溯。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 struct node10 {11 int a,b,c,p,r,next;12 } edge[101];13 int first[21],t,minz;14 int o[21],n;15 void CL()16 {17 t = 1;18 ... 阅读全文
posted @ 2013-07-06 15:31 Naix_x 阅读(193) 评论(0) 推荐(0)
摘要:题目链接judge函数没写好,直接暴力就可以水过去。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 char str[21][31];10 int p[21][21];11 int len[21];12 int o[21],minz,n;13 int judge(int x,int y)14 {15 int len1,len2,i,j,k,ans,minz,flag;16 len1 = strlen(str[... 阅读全文
posted @ 2013-07-06 14:27 Naix_x 阅读(260) 评论(0) 推荐(0)
摘要:好久没写过CF的博客了,最近忙着考试,各种不顺,没想到这次CF却是很顺利。A题暴力,开始看错题了。。然后发现只需要转一次。。。B题也是暴力去构造的,C题一个组合问题,话说这次终于在比赛里把组合题给A了,这题不难,但也不是很水,当时就是觉得应该是这样,感觉题意也不是很清楚,按自己的理解过了样例,应该就没问题了,用到以前用过的等比数列求和取余的模版。D题也是构造问题,只要看出一个连通块,只要一个100塔其他都是200塔就行了。DIV2里,第一次做了4个题。。rating涨了181。。如果我之前的rating 是蓝色,而不是绿色的话,这次就可以变紫了把。。。以后还有机会,慢慢来把。A题 1 #inc 阅读全文
posted @ 2013-07-05 09:44 Naix_x 阅读(223) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示