ACM题解源代码(POJ)
WuchangI
An optimistic Nobita fond of coding~~
展开
-
POJ 2159 (Ancient Cipher)
//大意是判断两个字符序列是否可以通过字符替换(substitution )和交换(permutation)变成对方。//替换的方法是不同的。不一定按题目的替换方法,只要被替换字母与替换字母是唯一的映射就可以了。//初看似乎需要穷举所有substitution和permutation序列,但细想后发现://1.permutation让序列不用考虑顺序问题,可以看作是两个字符集合,题目简原创 2017-06-14 20:58:00 · 340 阅读 · 0 评论 -
POJ 1753(Flip Game)
tips:1、对于每个棋子,翻转偶数次相当于原封不动,翻转奇数次相当于翻转一次2、总共有16个棋格子,利用组合数(关键就是“从16个格子里面任意选取n个元素的所有组合”如何实现:DFS),共 2^16 种不同翻转选择#includeusing namespace std;int a[16], b[16];bool achieve = false;int result[1原创 2017-07-01 10:54:34 · 288 阅读 · 0 评论 -
POJ 3299
//考察公式运算化简和多条件判断//同时注意输出格式的控制#include#include#include#includeusing namespace std;int main(void){ double T, D, H, E, t1, t2; char c1, c2; while (cin >> c1&&c1 != 'E')原创 2017-06-14 13:28:43 · 320 阅读 · 0 评论 -
POJ 1046
//实质就是让你求离在空间直角坐标系中某个给定的点的距离最近的那个点的坐标,即所谓的map(映射)//注意:If there are more than one color with the same smallest distance, //please output the color given first in the color set.#includeusing原创 2017-06-14 20:54:52 · 296 阅读 · 0 评论 -
POJ 2533
//实质求严格上升子序列的长度,动态规划#include#includeint a[1000], dp[1000];int main(void){ int n,ans=1; scanf("%d", &n); for (int i = 0; i { scanf("%d", &a[i]); dp[原创 2017-06-14 20:59:51 · 371 阅读 · 0 评论 -
POJ 1000
#includeint main(void){ int a, b; while (scanf("%d%d", &a, &b) != EOF) printf("%d\n", a + b); return 0;}原创 2017-06-15 10:46:19 · 264 阅读 · 0 评论 -
POJ 3750
#include#includechar a[64][15];int main(void){ int N, W, S, s; scanf("%d", &N); for (int i = 0; i scanf("%d,%d", &W, &S); int n = N; W -= 2;原创 2017-06-14 13:18:39 · 355 阅读 · 0 评论