04 2013 档案

摘要:为什么不会有多个答案。。。求解释。。。View Code 1 /* 2 异或运算 3 a^b^b = a; 4 1. a ^ b = b ^ a 5 2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c; 6 3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c. 7 4. a ^ b ^ a = b 8 9 枚举res的时候,为什么不可能出现多个满足题意的答案?10 11 */12 #include<stdio.h>13 #include<string.h>14 #include<stdlib.h>15 #in 阅读全文
posted @ 2013-04-27 20:30 xxx0624 阅读(243) 评论(0) 推荐(0) 编辑
摘要:View Code 1 /* 2 欧拉函数+求与之互素的数的个数 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<vector>11 #include<map>12 #include<math.h>13 typedef long long ll;14 //typ 阅读全文
posted @ 2013-04-26 19:56 xxx0624 阅读(221) 评论(0) 推荐(0) 编辑
摘要:题意不难理解dp[ i ][ j ] = dp[ i-1 ][ j ]+dp[ i ][ j-1 ];View Code 1 /* 2 dp 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 const int maxn = 1005; 7 int dp[ maxn ][ maxn ]; 8 int mat[ maxn ][ maxn ]; 9 int main(){10 int ca;11 scanf("%d",&ca);12 while( ca-- ){13 int n,m;14 sca... 阅读全文
posted @ 2013-04-26 19:08 xxx0624 阅读(384) 评论(0) 推荐(0) 编辑
摘要:给n个矩阵,求出相乘后的结果View Code 1 #include<stdio.h> 2 const int maxn = 105; 3 struct node{ 4 int row,col; 5 int mat[ maxn ][ maxn ]; 6 }; 7 node res; 8 int main(){ 9 int ca;10 scanf("%d",&ca);11 while( ca-- ){12 int x;13 scanf("%d",&x);14 node a,b;15 int ... 阅读全文
posted @ 2013-04-26 19:05 xxx0624 阅读(228) 评论(0) 推荐(0) 编辑
摘要:注意重边!!!!View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<algorithm> 5 #include<iostream> 6 #include<queue> 7 using namespace std; 8 const int maxn = 505; 9 int mat[ maxn ][ maxn ];10 int ind[ maxn ];11 int res[ maxn ];12 int vis[ 阅读全文
posted @ 2013-04-26 16:34 xxx0624 阅读(213) 评论(0) 推荐(0) 编辑
摘要:View Code 1 /* 2 模拟+回文数 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<vector>11 #include<map>12 #include<math.h>13 typedef long long ll;14 //typedef __in 阅读全文
posted @ 2013-04-24 22:18 xxx0624 阅读(257) 评论(0) 推荐(0) 编辑
摘要:对于状态的处理有点难想。。。View Code 1 /* 2 bfs 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<queue> 7 #include<stdlib.h> 8 #include<algorithm> 9 using namespace std;10 const int maxn = 12;11 const int inf = 99999999;12 int mat[ maxn ][ maxn ];13 int vis[ maxn ][ maxn ];1 阅读全文
posted @ 2013-04-24 21:56 xxx0624 阅读(233) 评论(0) 推荐(0) 编辑
摘要:题意就是要求给定的一张图是否是棵树。。。BFS一遍即可+树的特征。有一组BT数据。。。View Code 1 /* 2 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue> 10 #include<vector> 11 #include<map> 12 #include<math.h> 1 阅读全文
posted @ 2013-04-24 21:15 xxx0624 阅读(249) 评论(0) 推荐(0) 编辑
摘要:详见http://www.cnblogs.com/xiaolongchase/archive/2012/02/10/2344769.htmlView Code 1 /* 2 dp+斜率优化 3 题意:给定一些点,把这些点分成某些行 4 对于分成同一行的点的代价为:( sigma(x)*sigma(x)+m ) 5 求最小的代价 6 dp[ i ] = min( dp[ j ]+(sum[i]-sum[j])^2+m ) (其中j<=i)//以第i个点为末尾的最小代价 7 8 首先对于任意的j,k( j<k<=i ) 9 如果说k的决策由于j,那么可得到dp[ k ]+(sum 阅读全文
posted @ 2013-04-24 20:45 xxx0624 阅读(912) 评论(0) 推荐(0) 编辑
摘要:第一道树形DP详细见分析。。View Code 1 #include<stdio.h> 2 #include<string> 3 #include<stdlib.h> 4 #include<map> 5 #include<algorithm> 6 #include<iostream> 7 using namespace std; 8 const int maxn = 205; 9 const int maxm = 40005; 10 struct node{ 11 int u,v,next; 12 }edge[ maxm 阅读全文
posted @ 2013-04-21 00:33 xxx0624 阅读(335) 评论(0) 推荐(0) 编辑
摘要:一开始TLE了。。View Code 1 /* 2 dfs+TLE 3 题意:给定一些点,求最多能放多少个点,使得这些放的点不互相攻击 4 5 */ 6 #include<stdio.h> 7 #include<string.h> 8 #include<stdlib.h> 9 #include<algorithm> 10 #include<iostream> 11 #include<queue> 12 #include<vector> 13 #include<map> 14 #include< 阅读全文
posted @ 2013-04-20 13:38 xxx0624 阅读(301) 评论(0) 推荐(0) 编辑
摘要:View Code 1 import java.util.*; 2 import java.math.*; 3 import java.text.*; 4 import java.io.* ; 5 6 public class testjava{ 7 public static void... 阅读全文
posted @ 2013-04-17 17:53 xxx0624 阅读(128) 评论(0) 推荐(0) 编辑
摘要:个人的标准写法。View Code 1 /* 2 线段树+修改区间+询问区间 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue> 10 #include<vector> 11 #include<map> 12 #include<math.h> 13 typedef long long l 阅读全文
posted @ 2013-04-15 22:05 xxx0624 阅读(305) 评论(0) 推荐(0) 编辑
摘要:经典题!!!View Code 1 #include<stdio.h> 2 #include<string.h> 3 const int maxn = 100005; 4 typedef __int64 int64; 5 int64 a[ maxn ]; 6 int64 vis[ maxn ]; 7 int64 cnt[ maxn ]; 8 struct node{ 9 int64 l,r,d;10 }b[ maxn ];11 int main(){12 int64 n,k,m;13 while( scanf("%I64d%I64d%I64d",&a 阅读全文
posted @ 2013-04-12 12:27 xxx0624 阅读(680) 评论(0) 推荐(0) 编辑
摘要:View Code 1 #include<stdio.h> 2 #include<string.h> 3 const int maxn = 105; 4 int vis[ maxn ]; 5 int a[ maxn ]; 6 int b[ maxn ]; 7 8 void dfs( int s,int t,int pos ){ 9 if( pos==t ){10 for( int i=0;i<t;i++ )11 printf("%d ",b[ i ]);12 printf("\n");13 return ;14... 阅读全文
posted @ 2013-04-11 20:59 xxx0624 阅读(211) 评论(2) 推荐(0) 编辑
摘要:多项式积分。注意化简和符号即可。降幂!!!View Code 1 /* 2 多项式积分 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue> 10 #include<vector> 11 #include<map> 12 #include<math.h> 13 typedef long l 阅读全文
posted @ 2013-04-10 15:46 xxx0624 阅读(264) 评论(2) 推荐(0) 编辑
摘要:题意:求a到b的数中,共有多少个1先可以预处理出一位,两位。。等这些数的1的个数,即 sum。然后对于某个特定的 n 位数,假设第一位是1 然后求出有多少种可能的情况(即有多少种可能的数),,然后再枚举第二位,第三位。。。。View Code 1 /* 2 找规律 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue> 10 阅读全文
posted @ 2013-04-10 14:07 xxx0624 阅读(369) 评论(0) 推荐(0) 编辑
摘要:水~View Code 1 /* 2 a转化为二进制 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<vector>11 #include<map>12 #include<math.h>13 typedef long long ll;14 //typedef _ 阅读全文
posted @ 2013-04-08 21:59 xxx0624 阅读(318) 评论(0) 推荐(0) 编辑
摘要:字典树;这里字典树用于存储dis这些数。。。然后对于某个数x来说,要使得它变大,就要找到一个与它能“合适”与它异或的数。View Code 1 /* 2 字典树+异或 3 a^b = (a^c)^(b^c) 4 */ 5 #include<stdio.h> 6 #include<string.h> 7 #include<stdlib.h> 8 const int maxn = 100005; 9 const int maxm = 31; 10 int tree[ maxn*maxm ][ 2 ]; 11 int dis[ maxn ],vis[ maxn ] 阅读全文
posted @ 2013-04-04 18:07 xxx0624 阅读(237) 评论(0) 推荐(0) 编辑
摘要:简单的字典树View Code 1 /* 2 字典树 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<map>11 #include<vector>12 #include<math.h>13 using namespace std;14 typedef long 阅读全文
posted @ 2013-04-04 15:05 xxx0624 阅读(214) 评论(0) 推荐(0) 编辑
摘要:View Code 1 /* 2 水~~~ 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<map>11 #include<vector>12 #include<math.h>13 using namespace std;14 typedef long long 阅读全文
posted @ 2013-04-04 14:07 xxx0624 阅读(291) 评论(0) 推荐(0) 编辑
摘要:为什么暴力bfs搜索都不行,样例都不过????wa的代码。View Code 1 /* 2 bfs 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<map>11 #include<vector>12 #include<math.h>13 using namesp 阅读全文
posted @ 2013-04-04 13:53 xxx0624 阅读(292) 评论(0) 推荐(0) 编辑
摘要:简单的优先队列。。。View Code 1 /* 2 优先队列 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<map>11 #include<vector>12 #include<math.h>13 using namespace std;14 typedef 阅读全文
posted @ 2013-04-04 10:53 xxx0624 阅读(300) 评论(0) 推荐(0) 编辑
摘要:对于斜率优化的dp还不是很懂。。。。。。。。。View Code 1 /* 2 dp+斜率优化 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<math.h>11 using namespace std;12 const int maxn = 1000005;13 const int 阅读全文
posted @ 2013-04-03 21:33 xxx0624 阅读(285) 评论(0) 推荐(0) 编辑
摘要:View Code 1 /* 2 排序+优先队列 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<map>11 #include<vector>12 #include<math.h>13 using namespace std;14 typedef long l 阅读全文
posted @ 2013-04-01 21:22 xxx0624 阅读(317) 评论(0) 推荐(0) 编辑