摘要:博弈,主要是求SG值。终于做出点儿感觉。 1 /* 1760 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 55 7 8 char map[MAXN][MAXN]; 9 int n, m;10 11 int cal_SG() {1...
阅读全文
摘要:自己想明白的第一道博弈。首先a==b的时候肯定是先手赢;然后当a>=2*b时,不妨假设a=nb+k, k 3 #include 4 #include 5 6 void swap(int &a, int &b) { 7 int tmp = a; 8 a = b; 9 b ...
阅读全文
摘要:挺好的一道DP。 1 /* 2217 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 200510 #define MAXM 1000051...
阅读全文
摘要:并查集+DP。 1 /* 2144 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 105 7 8 char s[MAXN][MAXN]; 9 int dp[MAXN][MAXN];10 int lens[MAXN];11 int ...
阅读全文
摘要:简单搜索。 1 /* hdoj 1987 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 char s[505];10 char map[25][25];11 boo...
阅读全文
摘要:水模拟题。 1 /* 1483 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 10005 7 8 typedef struct { 9 char s[26]; 10 int len; 11 } n...
阅读全文
摘要:水DP。精度很坑。 1 /* hdoj 1903 */ 2 #include 3 #include 4 #include 5 #include 6 7 #define MAXN 505 8 9 double a[MAXN];10 double dp[MAXN][2];11 12 doub...
阅读全文
摘要:大数乘法加法,直接javaA了。 1 import java.util.Scanner; 2 import java.math.BigInteger; 3 4 public class Main { 5 public static void main(String[] args) { 6 ...
阅读全文
摘要:STL的应用,基本就是模拟题。 1 /* 1410 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 #define ONLINE_JUDGE1...
阅读全文
摘要:DFS。 1 /* 1539 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define INF 0xfffffff10 11 int Q[105];12 cha...
阅读全文
摘要:状态DP。 1 /* 2809 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 #define MAXN 2011 12 typedef st...
阅读全文
摘要:简单DP。将[0,1]的浮点数离散化为[0,1000]的整数。最后再除以1000^2. 1 /* 2195 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 1000 7 #define MAXL 205 8 #define INF ...
阅读全文
摘要:规律题。 1 /* 2451 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 15 7 8 char s[MAXN]; 9 __int64 a[MAXN];10 int c[10] = {0,1,2,3,4,4,4,4,4,4};1...
阅读全文
摘要:字符串模拟水题。 1 /* 3587 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 #define MAXN 1005 ...
阅读全文
摘要:DP。dp[i][j]可以表示i行j列满足要求的组合个数,考虑dp[i-1][k]满足条件,那么第i行的那k列可以为任意排列(2^k),其余的j-k列必须全为1,因此dp[i][j] += dp[i-1][k]*(2^k)*C(j, k)。 1 /* 5155 */ 2 #include 3 #i...
阅读全文
摘要:简单DP。 1 /* 1726 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 105 7 #define INF 99999 8 9 bool isValid[MAXN][MAXN];10 char s[MAXN];11 int ...
阅读全文
摘要:逆序数的分治求解,时间复杂度O(nlgn)。基本思想是在归并排序的基础上加逆序计数。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 #define MAXN 100005...
阅读全文
摘要:题目本身一点儿都不难,但是就是被字典序搞死了。写的挺麻烦,但是过了,逆向做好做一点儿。 1 /* 1619 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 15 7 #define MAXM 105 8 #define...
阅读全文
摘要:树状DP。 1 /* 1561 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 #define MAXN 20511 12 vector tb...
阅读全文
摘要:这个题目很好,变形的题目也很多。简单DP。 1 /* 1510 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 105 7 8 char map[MAXN][MAXN]; 9 int dp[MAXN][MAXN];10 11 int...
阅读全文
摘要:Twitter还是Amazon拿这个题目当过面试题。DP区间求面积。 1 /* 1506 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 100005 7 #define INF 999999 8 9 int l[MAXN], r[...
阅读全文
摘要:普通DP。基本和floyd一个思路。 1 /* 1474 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 15 7 #define MAXK 1005 8 #define MAXD 35 9 #define INF 999999...
阅读全文
摘要:状态压缩。分最后一个槽的值以及当前的配置方案是否可以进行DP。 1 /* 1438 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 32 7 8 const int MAXS = 1= 3)52 an...
阅读全文
摘要:LCIS 1 /* 1423 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 505 7 8 int a[MAXN]; 9 int b[MAXN];10 int c[MAXN];11 int n, m;12 int ans;13 1...
阅读全文
摘要:水题,搞清楚hanoi的定义就好做了。 1 /* 1329 */ 2 #include 3 #include 4 #include 5 #include 6 7 #define MAXN 55 8 9 int b[MAXN];10 int a[MAXN];11 12 bool isSqu...
阅读全文
摘要:STL。 1 /* 1716 */ 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 #define MAXN 30 9 int b[MAXN];10 11 int main() {12 i...
阅读全文
摘要:找循环节水题。注意余数大于0。 1 /* 2802 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 4018 7 #define MOD 2009 8 9 __int64 a[MAXN+1];10 11 void init() {...
阅读全文
摘要:简单模拟,题目数据太弱太弱了。 1 /* 1107 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 typedef str...
阅读全文
摘要:简单地模拟退火。 1 /* 5017 */ 2 #include 3 #include 4 #include 5 #include 6 7 #define INF 1e30 8 9 const double eps = 1e-8;10 const double next = 0.99;1...
阅读全文
摘要:基础模拟退火。 1 /* poj 1379 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 #define MAXN 10...
阅读全文
摘要:刚开始学随机算法,凸包+模拟退火。 1 /* 2440 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 #define M...
阅读全文
摘要:树状数组+离散化的题目,一直在思考为什么结果不一样,后来才发现花开了就是开了不会再谢了。 1 /* 4325 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #def...
阅读全文
摘要:拓扑排序。 1 /* 5154 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 #define MAXN 10511 12 vector ve...
阅读全文
摘要:凸包模板题目。 1 /* 3285 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 5510 11 typedef struct {12 ...
阅读全文
摘要:计算几何-凸包模板题目,Graham算法解。 1 /* 1348 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 #define MAXN 1...
阅读全文
摘要:最开始的想法是搜索,发现不对,后来发现数据量很小,可以状态压缩+DP。 1 /* 4628 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 17 7 #define INF 9999 8 9 char s[MAXN];10 ...
阅读全文
摘要:HASH+暴力。 1 /* 4403 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 5510 11 map tb[2];12 char s...
阅读全文
摘要:LCS. 1 /* 1243 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 2025 7 #define MAXM 256 8 9 char type[MAXM];10 int point[MAXM];11 12 char bul...
阅读全文