12 2012 档案

摘要:题意:给定一些点,一些边。找出最长的一条路。点可重复走。简单的dfsView Code 1 #include<stdio.h> 2 #include<string.h> 3 const int maxn = 105; 4 int mat[ maxn ][ maxn ],vis[ maxn ][ maxn ]; 5 int max( int i,int j ){ 6 if( i<j ) i=j; 7 return i; 8 } 9 int ans;10 11 void dfs( int pos,int sum,int n ){12 if( pos>=n ) r 阅读全文
posted @ 2012-12-29 00:11 xxx0624 阅读(284) 评论(0) 推荐(0) 编辑
摘要:View Code 1 #include 2 #include 3 #include 4 using namespace std; 5 const int maxn = 305; 6 int dp[ maxn ][ maxn ]; 7 char a[ maxn ],b[ maxn ]; 8 int same( int i,int j ){ 9 if( a[ i ]==b[ j ] ) return 1;10 return 0;11 }12 int fmax( int i,int j,int k ){13 if( i<j )i=j;14 if( i<k )i=k... 阅读全文
posted @ 2012-12-27 21:33 xxx0624 阅读(173) 评论(0) 推荐(0) 编辑
摘要:View Code 1 #include 2 #include 3 #include 4 #define maxn 505 5 using namespace std; 6 int dp[ maxn ][ maxn ]; 7 int main(){ 8 char str1[ maxn ],str2[ maxn ]; 9 //string str1,str2;10 while ( scanf("%s%s",str1,str2)!=EOF ) {11 int len1,len2;12 len1 = strlen( str1 );... 阅读全文
posted @ 2012-12-23 18:38 xxx0624 阅读(241) 评论(0) 推荐(0) 编辑
摘要:floyd题意:给定一些money以及之间的转化,询问最后能不能让某种money升值View Code 1 #include<stdio.h> 2 #include<map> 3 #include<string> 4 #include<iostream> 5 using namespace std; 6 const int maxn = 105; 7 map<string,int>mp; 8 double mat[ maxn ][ maxn ]; 9 double fmax( double a ,double b ){10 retur 阅读全文
posted @ 2012-12-22 23:18 xxx0624 阅读(449) 评论(0) 推荐(0) 编辑
摘要:方法一:简单易懂View Code 1 const int maxn = 10005 ; 2 int prime[ maxn ],shu[ maxn ]; 3 void get_prime(){ 4 for( int i=1;i<maxn;i+=2 ) shu[ i ]=1; 5 for( int i=0;i<maxn;i+=2 ) shu[ i ]=0; 6 shu[ 1 ]=0,shu[ 2 ]=1; 7 for( int i=3;i<maxn;i+=2 ){ 8 if( shu[ i ]==1 ){ 9 int t... 阅读全文
posted @ 2012-12-21 23:56 xxx0624 阅读(244) 评论(0) 推荐(0) 编辑
摘要:简单DP题意:给定一些block的xyz坐标。求使得某些block叠起来得到的最大高度。dp[ i ].ans=max( dp[ 0....i-1 ].ans );( 还必须满足block[ i ].x,block[ i ].y 都小于dp[ k ].x,dp[ k ].y );View Code 1 /* 2 dp 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 阅读全文
posted @ 2012-12-20 18:10 xxx0624 阅读(1030) 评论(0) 推荐(0) 编辑
摘要:题意:给定几个坐标,在这些坐标上 t 时刻会有陨石雨。怎样在最短的时间内找到一个安全的地方。方法:预处理,把每个坐标有陨石的地方预处理出来,这样在bfs的时候会很简单,比如不用考虑待在原点不懂,或者往回走之类的View Code 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 #include<queue> 5 #include<algorithm> 6 using namespace std; 7 const int maxn = 405; 8 const 阅读全文
posted @ 2012-12-19 19:58 xxx0624 阅读(1617) 评论(0) 推荐(0) 编辑
摘要:附代码View Code 1 /* 2 无向图的联通分量 3 dfs 4 */ 5 #include<stdio.h> 6 #include<string.h> 7 const int maxn =30 ; 8 int map[ maxn ][ maxn ]; 9 int vis[ maxn ];10 int max;11 void dfs( int now ){12 //vis[ now ]=1;13 for( int i=1;i<=max;i++ ){14 if( map[ now ][ i ]==0||map[ i ][ now ]==0 ) conti.. 阅读全文
posted @ 2012-12-17 00:18 xxx0624 阅读(185) 评论(0) 推荐(0) 编辑
摘要:字符串的翻转注意一些特殊的情况即可View Code 1 /* 2 字符翻转 3 注意这种情况:_ _ ab_ _ _cc_ _ 4 "_"都是要输出的 5 6 */ 7 #include<stdio.h> 8 #include<string.h> 9 const int maxn = 1105;10 char s[ maxn ];11 int main(){12 int n;13 scanf("%d",&n);14 getchar();15 while( n-- ){16 int len;17 gets( s );18 阅读全文
posted @ 2012-12-16 22:52 xxx0624 阅读(558) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2012-12-14 22:41 xxx0624 阅读(167) 评论(0) 推荐(0) 编辑
摘要:n^n=10^( n*log10( n ) );View Code 1 /* 2 n^n 的最高位 3 */ 4 #include<stdio.h> 5 #include<stdlib.h> 6 #include<string.h> 7 #include<iostream> 8 #include<algorithm> 9 #include<queue>10 #include<map>11 #include<math.h>12 using namespace std;13 const int maxn 阅读全文
posted @ 2012-12-14 20:07 xxx0624 阅读(292) 评论(0) 推荐(0) 编辑
摘要:规律题View Code 1 /* 2 n^n 个位 3 */ 4 #include<stdio.h> 5 #include<stdlib.h> 6 #include<string.h> 7 #include<iostream> 8 #include<algorithm> 9 #include<queue>10 #include<map>11 #include<math.h>12 using namespace std;13 const int maxn = 1005;14 const int in 阅读全文
posted @ 2012-12-14 20:06 xxx0624 阅读(242) 评论(0) 推荐(0) 编辑
摘要:完全:题意:给定E,F,分别表示空的存钱罐的重量和装了钱之后的重量。给定n种money的价值和重量dp[ i ][ j ]:表示从前 i 种money中选出某些,使得重量至少为 j 得到的最大价值。View Code 1 /* 2 完全背包 变形 3 */ 4 #include<stdio.h> 5 #include<stdlib.h> 6 #include<string.h> 7 #include<iostream> 8 #include<algorithm> 9 #include<queue>10 #include&l 阅读全文
posted @ 2012-12-14 19:05 xxx0624 阅读(605) 评论(0) 推荐(0) 编辑
摘要:01背包变形dp[ i ][ j ]:表示从前 i 家银行中抢劫某些家,得到 j 价值 而不被抓住的概率。类似01背包:dp[ j ]=max( dp[ j ],dp[ j - val[ i ] ]*( 1-w[ i ] ) ) );View Code 1 /* 2 01 背包 变异 3 dp[ i ]:偷i元的money不被抓的概率 4 */ 5 #include<stdio.h> 6 #include<stdlib.h> 7 #include<string.h> 8 #include<iostream> 9 #include<algor 阅读全文
posted @ 2012-12-13 23:23 xxx0624 阅读(235) 评论(0) 推荐(0) 编辑
摘要:多重背包题意:价值为1,2,3,4,5,6. 分别有n[1],n[2],n[3],n[4],n[5],n[6]个。求能否找到满足价值刚好是所有的一半的方案。View Code 1 /* 2 多重背包 3 */ 4 #include<stdio.h> 5 #include<stdlib.h> 6 #include<string.h> 7 #include<iostream> 8 #include<algorithm> 9 #include<queue>10 #include<map>11 #include< 阅读全文
posted @ 2012-12-13 22:38 xxx0624 阅读(465) 评论(0) 推荐(0) 编辑
摘要:View Code 1 /* 2 dfs 从一个点出发最多能走多少步 3 用bfs较为麻烦 4 */ 5 #include<stdio.h> 6 #include<string.h> 7 #include<stdlib.h> 8 #include<algorithm> 9 #include<iostream>10 #include<queue>11 //#include<map>12 #include<math.h>13 using namespace std;14 typedef long lon 阅读全文
posted @ 2012-12-11 16:38 xxx0624 阅读(532) 评论(0) 推荐(0) 编辑
摘要:View Code 1 /* 2 模拟 简单 3 res[i][j]=mat[i][j]+d[sum]; 4 其中sum=mat[i][j]+i,j其他四个方向的值 5 */ 6 #include<stdio.h> 7 #include<string.h> 8 #include<stdlib.h> 9 #include<algorithm>10 #include<iostream>11 #include<queue>12 //#include<map>13 #include<math.h>14 us 阅读全文
posted @ 2012-12-11 13:40 xxx0624 阅读(277) 评论(0) 推荐(0) 编辑
摘要:字典树关键在于怎样找出两个单词拼成的单词,可以用strncpy函数字典树标记了单词的结尾View Code 1 /* 2 字典树 3 */ 4 #include<stdio.h> 5 #include<stdlib.h> 6 #include<string.h> 7 #include<iostream> 8 #include<algorithm> 9 #include<queue>10 #include<map>11 #include<math.h>12 using namespace std;13 阅读全文
posted @ 2012-12-10 21:00 xxx0624 阅读(406) 评论(0) 推荐(0) 编辑
摘要:View Code 1 /* 2 贪心 排序 3 */ 4 #include<stdio.h> 5 #include<stdlib.h> 6 #include<string.h> 7 #include<iostream> 8 #include<algorithm> 9 #include<queue>10 #include<map>11 #include<math.h>12 using namespace std;13 const int maxn = 1505;14 const int inf = 阅读全文
posted @ 2012-12-10 19:37 xxx0624 阅读(747) 评论(8) 推荐(0) 编辑
摘要:View Code 1 /* 2 * 动态规划实现,算法复杂度O(n) 3 */ 4 int maxSubSequenceSum3(int a[], int len) 5 { 6 int i; 7 int curSum; /* 当前序列和 */ 8 int maxSum; /* 最大序列和 */ 9 10 /* 初始化当前序列和为0 */11 curSum = 0;12 13 /* 初始化最大子序列和为序列第一个元素 */14 maxSum = a[0];15 16 /* 开始循环求子序列和 */17 for (i = ... 阅读全文
posted @ 2012-12-09 15:19 xxx0624 阅读(174) 评论(0) 推荐(0) 编辑
摘要:View Code /*最小顶点覆盖:选出最少的点,这些点的关联的边都被覆盖最小顶点覆盖等于最大匹配*/#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 1505;const int inf = 0x7fffffff;struct node{ int u,val,next;}edge[ maxn<<2 ];int head[ maxn ],vis[ maxn ],fa[ maxn ];int cnt;void init(){ mem 阅读全文
posted @ 2012-12-09 14:33 xxx0624 阅读(868) 评论(0) 推荐(0) 编辑
摘要:View Code 1 /* 2 蜗牛从井底爬出来的时间,模拟 3 */ 4 #include<stdio.h> 5 #include<stdlib.h> 6 #include<string.h> 7 #include<iostream> 8 #include<algorithm> 9 #include<queue>10 #include<map>11 #include<math.h>12 using namespace std;13 const int maxn = 1005;14 const i 阅读全文
posted @ 2012-12-08 20:45 xxx0624 阅读(208) 评论(0) 推荐(0) 编辑
摘要:字符串处理的简单题View Code 1 /* 2 字符串处理 简单 3 */ 4 #include<stdio.h> 5 #include<stdlib.h> 6 #include<string.h> 7 #include<iostream> 8 #include<algorithm> 9 #include<queue>10 #include<map>11 #include<math.h>12 using namespace std;13 const int maxn = 305;14 const 阅读全文
posted @ 2012-12-08 20:22 xxx0624 阅读(380) 评论(0) 推荐(0) 编辑
摘要:细节题1,注意输出2,当a[i].sum有偶数个时,前一半比后一半多53,当只有一个时,除100,50以外,输出90,80,70,60等等之类的View Code 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<iostream> 5 #include<algorithm> 6 #include<queue> 7 #include<map> 8 #include<math.h> 9 using name 阅读全文
posted @ 2012-12-07 23:53 xxx0624 阅读(326) 评论(0) 推荐(0) 编辑
摘要:View Code 1 /* 2 DP 3 n个数,奇数步相加,偶数步相减 4 */ 5 #include<stdio.h> 6 #include<stdlib.h> 7 #include<string.h> 8 #include<iostream> 9 #include<algorithm>10 #include<queue>11 #include<map>12 #include<math.h>13 using namespace std;14 const int maxn = 150005;15 阅读全文
posted @ 2012-12-07 22:02 xxx0624 阅读(205) 评论(0) 推荐(0) 编辑
摘要:找规律:n=1 ans=0;n=2 ans=1;n=3 ans=1;.....if( n%2==1 ) ans=ans*2-1;else ans=ans*2+1;View Code 1 import java.util.Scanner; 2 import java.math.*; 3 //import java.text.*; 4 //import java.lang.*; 5 public class b{ 6 public static void main( String srga[] ){ 7 Scanner cin=new Scanner( System.in... 阅读全文
posted @ 2012-12-06 19:13 xxx0624 阅读(443) 评论(0) 推荐(0) 编辑
摘要:View Code 1 /* 2 最大连续子序列和 3 输出 ans 和 首元素,尾元素 4 */ 5 6 /* 7 //TLE 只适合处理小型数据 8 #include<stdio.h> 9 #include<string.h>10 #include<stdlib.h>11 #include<algorithm>12 #include<iostream>13 #include<queue>14 using namespace std;15 const int maxn = 10005;16 int a[ maxn ];1 阅读全文
posted @ 2012-12-04 14:28 xxx0624 阅读(417) 评论(0) 推荐(0) 编辑