随笔分类 - HDU
摘要:为什么暴力过不了这题。。。AC代码View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 struct tree{ 5 int lev; 6 tree* next[2]; 7 }; 8 tree root; 9 10 void build( char str[] ){11 int len = strlen( str );12 tree *p = &root;13 tree *tmp;14 for( int i=0;i<len;i++ ){15 ...
阅读全文
摘要:水题不解释。。。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
阅读全文
摘要:最小生成树。。。。View Code 1 /* 2 prim 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 //typed
阅读全文
摘要:View Code 1 #include<stdio.h> 2 const int maxn = 105; 3 int sum[ maxn ],num[ maxn ],p[ maxn ]; 4 int dp[ maxn ]; 5 int min( int i,int j ) { 6 return i>j?j:i; 7 } 8 int main(){ 9 int ca;10 scanf("%d",&ca);11 while( ca-- ){12 int n;13 scanf("%d",&n);14 sum[ 0 ]...
阅读全文
摘要:找规律题。只要分析到4步的时候差不多规律就出来了。其次就是大整数!!!!!!!!!View Code 1 import java.util.*; 2 import java.math.*; 3 import java.text.*; 4 import java.io.* ; 5 6 public class Main{ 7 public static void main( String args[] ){ 8 Scanner cin = new Scanner(new BufferedInputStream(System.in)); 9 BigIn...
阅读全文
摘要:唉。。看题解过的。。。View Code 1 /* 2 题意: 3 给定n个人,求组队的方法数。 4 关键:首先要分情况,1个队,2个队,3个队。。。 5 递推: 6 a[ i ][ j ]:前i个人分成j个队的方法数。 7 a[i][j] = a[i-1][j-1](第i个人自成一队)+a[i-1][j]*j(第i个人加入了j个队中的某个队); 8 */ 9 #include<stdio.h>10 #include<string.h>11 #include<stdlib.h>12 #include<algorithm>13 #include&l
阅读全文
摘要:为什么不会有多个答案。。。求解释。。。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
阅读全文
摘要: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
阅读全文
摘要:注意重边!!!!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[
阅读全文
摘要: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
阅读全文
摘要:对于状态的处理有点难想。。。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
阅读全文
摘要:题意就是要求给定的一张图是否是棵树。。。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
阅读全文
摘要:详见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
阅读全文
摘要:第一道树形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
阅读全文
摘要:一开始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<
阅读全文
摘要:个人的标准写法。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
阅读全文
摘要:水~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 _
阅读全文
摘要:字典树;这里字典树用于存储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 ]
阅读全文
摘要: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
阅读全文
摘要:为什么暴力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
阅读全文