上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 42 下一页
摘要: 简单的压缩状态dp 1 /* 2 状态压缩dp 3 同hdu2167 4 利用滚动数组!! 5 */ 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 #include13 #include14 #include15 using namespace std;16 const int maxn = 20;17 int binary[ maxn+5 ];18 int s[ 1<<(maxn) ];19 //int sum[ maxn ][ 1<<maxn ];20 //int dp[ ma 阅读全文
posted @ 2013-08-03 22:47 xxx0624 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 状态压缩dp详见代码 1 /* 2 状态压缩dp 3 dp[ i ][ j ]:第i行j状态的最大和 4 dp[i][j] = max( dp[i-1][k]+sum[i][j] ); 5 题意:给定一个N*N的方格,让你在里面取出一些数使其和最大,要求每一个数不能与其相邻的8个数同时取出 6 */ 7 #include 8 #include 9 #include10 #include11 #include12 #include13 #include14 #include15 #include16 using namespace std;17 const int maxn = 15;18 in 阅读全文
posted @ 2013-08-03 21:56 xxx0624 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 错排公式。用64位! 1 /* 2 3 */ 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 #include13 using namespace std;14 typedef __int64 int64;15 const int maxn = 1005;16 const int64 mod = 1000000007;17 int main(){18 int64 a[ 105 ];19 //printf("%d\n",mod);20 a[... 阅读全文
posted @ 2013-08-03 20:21 xxx0624 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 思路:以y的值进行离散化根据x的值 对每一条y轴边进行处理,如果是"左边"则插入,是"右边"则删除。 1 /* 2 扫描线+线段树+离散化 3 求多个矩形的周长 4 */ 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 using namespace std; 15 const int maxn = 5005; 16 const int maxm = 10010; 17 struct SegT 阅读全文
posted @ 2013-08-02 22:35 xxx0624 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 3 */ 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 #include13 using namespace std;14 const int maxn = 1005;15 int main(){16 int ca,T;17 T = 1;18 scanf("%d",&ca);19 while( ca-- ){20 int x;21 scanf("%d",&x);22 ... 阅读全文
posted @ 2013-08-01 15:25 xxx0624 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 bfs+标记状态 3 如何记录状态是关键!! 4 */ 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 using namespace std; 15 const int maxn = 115; 16 const int inf = 9999999; 17 char mat[ maxn ][ maxn ]; 18 int vis[ maxn ][ maxn ][ 2 ][ 2 ]; 19 const... 阅读全文
posted @ 2013-08-01 15:22 xxx0624 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 三分出两个中间的位置即可。 1 /* 2 两次三分 3 */ 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 const int maxn = 105;11 const double eps = 1e-8;12 const double pi = acos(-1.0);13 struct Point {14 double x,y;15 };16 Point a,b,c,d;17 double P,Q,R,ans1,ans2;18 19 double dis( Point aa... 阅读全文
posted @ 2013-07-28 23:12 xxx0624 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 特判标记即可 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 const double eps = 1e-8; 8 const double inf = 9999999999.0; 9 const int maxn = 100005;10 struct Point{11 double x,y;12 int flag;13 };14 Point pnt[ maxnres ) break;54 if( pnt[i].flag==pnt[j].fl... 阅读全文
posted @ 2013-07-26 22:31 xxx0624 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 模板题题意:给定两个凸多边形,求出合并后的面积,这个合并后的面积不包括重叠部分。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 const int maxn = 155; 8 const int maxm = 155; 9 const double eps = 1e-8; 10 const double pi = acos(-1.0); 11 struct Point{ 12 double x,y; 13 }; 14 struct Line{ 15 ... 阅读全文
posted @ 2013-07-25 22:15 xxx0624 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题意:找出第index 个回文数。这题是有规律的,即list[]数组。其次,对于某个 index 可以先精确到 位数 pos,然后在进行分析。1a 1 #include 2 #include 3 #include 4 typedef __int64 int64; 5 int64 list[ 24 ]; 6 int ans[ 240 ]; 7 8 void init(){ 9 list[0] = 0; 10 list[1] = 9; 11 list[2] = 9; 12 list[3] = 90; 13 list[4] = 90; 14... 阅读全文
posted @ 2013-07-23 17:44 xxx0624 阅读(273) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 42 下一页