
icpc总论
文章平均质量分 52
aclay
成事不在于力量的大小,而在于能坚持多久!
展开
-
两棵二叉排序树合并为一颗 -- 07年 数据结构最后一道 [专硕]@NEU
#include #include #include const int N = 105;struct Node { int value; struct Node* lchild; struct Node* rchild;};typedef struct Node Node;Node* creat() { Node* root; int v; scanf("%d", &v原创 2012-11-17 15:04:46 · 5834 阅读 · 2 评论 -
poj 2309 BST [ 2^k 的要点 ]
找到最大的 x % 2^k == 0 的 2^k 的值, 则对应的满BST含 k +1 层,共有 2^k+1 - 1个节点, x 的左右子树各含有 2^k - 1个节点,左子树的编号区间为 [min, x-1], 右子树的编号区间为 [x+1, max], 由此得出 min = x - 2^k + 1, max = x + 2^k - 1. 2^k 联想到 lowbit() 正是解决这个问题!#原创 2012-12-16 11:31:28 · 599 阅读 · 0 评论 -
poj 2255 给前序中序写后序 [ 也是经典的面试题 ]
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-12-14 22:29:21 · 448 阅读 · 0 评论 -
poj 2499 计算二叉树的“最短”路径 -> 贪心
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-12-13 21:51:20 · 505 阅读 · 0 评论 -
poj 1145 二叉树和为某一值的情况
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-12-14 00:08:04 · 504 阅读 · 0 评论 -
poj 1703 [ 并查集 不同帮派 仅仅是判断是否是属于同一帮派 code orz ]
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-12-12 09:42:49 · 659 阅读 · 0 评论 -
poj 1330 LCA [ tarjan算法 deserve thinking ]
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-12-11 19:34:36 · 512 阅读 · 0 评论 -
poj 1330 LCA [ vector 模拟邻接表存图 DFS 找到每个节点的层]
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-12-11 10:23:48 · 1238 阅读 · 1 评论 -
poj 1338 Ugly Numbers [ 离线预处理 - 只处理丑数,复杂度很低 此题也是 程序猿的经典面试题]
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-12-07 22:25:46 · 676 阅读 · 0 评论 -
poj 1581 [ acm 判题模拟]
#include #include #include #include #include #include #include #include #include #include #include #include #include #define MID(x,y) ( ( x + y ) >> 1 )#define L(x) ( x << 1 )#define R(原创 2012-12-07 15:34:23 · 561 阅读 · 0 评论 -
poj 1833 排列 [ 使用STL的next_permutation函数生成全排列 + STL中copy函数的用法完美解决 ]
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-12-08 11:50:23 · 463 阅读 · 0 评论 -
poj 3094 [ 简单计算]
#include #include #include #include #include #include #include #include #include #include #include #include #include #define MID(x,y) ( ( x + y ) >> 1 )#define L(x) ( x << 1 )#define R(原创 2012-12-07 14:22:12 · 438 阅读 · 0 评论 -
poj 2196 [进制转换 各位求和]
#include #include #include #include #include #include #include #include #include #include #include #include #include #define MID(x,y) ( ( x + y ) >> 1 )#define L(x) ( x << 1 )#define R(原创 2012-12-07 14:07:14 · 625 阅读 · 0 评论 -
poj 2739 [离线预处理 + 枚举]
#include #include #include #include #define BUG puts("here!!!");using namespace std;const int maxp = 2000, n = 10001;int prime[maxp], total = 0;bool isPrime(int k) { for(int i = 0; i < total;原创 2012-12-05 19:26:48 · 495 阅读 · 0 评论 -
poj 1552 [简单计算]
#include #include #include #include #define BUG puts("here!!!")using namespace std;const int N = 105;int a[N];int main() { int i, num, count; while(cin >> num, num != -1) { memset(a, 0, s原创 2012-12-05 15:41:32 · 647 阅读 · 0 评论 -
__int64 与long long 的区别
//为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数 //结果VC中还是认为是32位的,显然不合适 //typedef signed long int TSint64; //typedef unsigned long int TUint64; //ANSI C中规定long long才能表示64位 //参原创 2013-01-18 18:26:10 · 1022 阅读 · 0 评论 -
poj 3624 01背包 (一维AC)
#include #include #include #include #define Bug cout << "here\n";using namespace std;const int N = 3450;int bag[12885];int w[N], v[N];int get_max(int a, int b) { return a > b ? a : b;}i原创 2012-05-04 16:29:42 · 830 阅读 · 0 评论 -
hdu 1251 [Trie]
/*Subject : Trie tree (Basic)*/#include #include #include #include #include #include #define Bug cout << "here\n";using namespace std;const int N = 1010;const int sn = 26;string s1;string原创 2012-11-08 18:32:16 · 445 阅读 · 0 评论 -
hdu 1166 线段树 (初步)
/* Subject: Interval Tree Author : a_clay Created Date : 2012-02-03 Sample : hdoj 1166 敌兵布阵 很基础,很赤裸,但也很经典*/#include #include #include #include #include #define Bug cout << "here原创 2012-09-08 10:39:19 · 432 阅读 · 0 评论 -
poj 2352 Stars (树状数组 + 1)
/* Subject: 树状数组 Author : a_clay Created Date : 2012-02-02 Sample : poj 2352 Stars*/#include #include #include #include #include #include #define Bug cout << "here\n";using原创 2012-09-07 21:25:04 · 368 阅读 · 0 评论 -
hdu 2222 Keywords Search (AC自动机-初步-很理解!)
// 看北大课件学习 或者 去我百度空间有资料出处#include #include #include #include #include #include #include #define BUG cout << "here\n";using namespace std;#define kind 26#define M 1000010struct node {原创 2012-09-07 13:55:00 · 657 阅读 · 0 评论 -
poj 1458 dp [最长公共子序列 O(n*m)]
#include #include #include using namespace std;int dp[1001][1001];char s1[1001];char s2[1001];int get_max(int a, int b) { return a > b ? a : b;}int main() { int len1, len2, i, j; while原创 2012-11-08 19:24:24 · 1428 阅读 · 1 评论 -
poj 1979 [ BFS 32ms 数据范围的事,可能造成 dfs 比 bfs 快了! ]
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-12-08 13:10:36 · 520 阅读 · 0 评论 -
Huffman-p3253 示例
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2013-01-18 18:34:05 · 656 阅读 · 0 评论 -
邻接表初步
#include using namespace std;const int N = 105;struct ArcNode { // 边结点 int adjvex; Node* next;};struct VNode { // 顶点 int data; // 顶点信息 ArcNode *head1; // 出边表的表头指针 //ArcNode *原创 2012-11-20 18:23:37 · 427 阅读 · 0 评论 -
n个小孩围城一圈数数,数到 2^k, 就退出圈子。07年 C 语言最后一道![专硕]@NEU
#include #include #include using namespace std;struct Node { int value; Node* next;};int n;Node* creatList(Node* &head, int n) { Node* p = head; for(int i = 2; i <= n; i++) {原创 2012-11-17 15:03:04 · 1120 阅读 · 0 评论 -
单链表的建立 (头插法 and 尾插法)
#include #include using namespace std;struct Node { int data; Node* next;};void headCreatList(Node* L) { Node* p; L->next = NULL; for(int i = 1; i <= 6; i++) { p = ne原创 2012-10-31 10:33:23 · 730 阅读 · 0 评论 -
hdu 3068 最长回文 (Manacher O(n) ) (扩展KMP和后缀数组也都可以做 O(nlogn))
/* Subject: Manacher Algorithm Author : a_clay Created Date : 2011-12-26 Sample : hdu 3068*/#include #include #include #include #include #include #define Bug cout << "here\n";原创 2012-09-07 18:49:10 · 2012 阅读 · 0 评论 -
poj 1505 copying Books 动态规划 -- 后续处理要细心~
历经不足两天,接近两天,哥终于 A 了你!题意 : 假设有M本书(编号为1,2,…,M),想将每本复制一份,M本书的页数可能不同(分别是a1,a2,…,aM)。 任务时将这M本书分给K 个抄写员(K≤M〉,每本书只能分配给一个抄写员进行复制,而每个抄写员所分配到的书必须是连续顺序的。 要求复制总时间最短, 该如何分配抄写。用 DP 做的,DP 还原创 2012-05-22 15:03:21 · 845 阅读 · 0 评论 -
poj 1979 [ Basic DFS 填平代标记 ]
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-12-08 12:31:10 · 471 阅读 · 0 评论 -
hdu1251 统计难题(字典树)
#include #include #include #include using namespace std;const int kind = 26;struct node { int num; bool terminal; node* next[26]; node() { num = 1; terminal = fa原创 2012-09-04 15:19:41 · 462 阅读 · 0 评论 -
poj 3414 pots [经典 BFS ]
#include #include #include #include #include #include #include #define Bug cout << "here\n";using namespace std;const int N = 101;struct node { int k1, k2, steps; int op; node *原创 2012-10-08 20:35:19 · 424 阅读 · 0 评论 -
poj 1003 [离线预处理 + 二分]
#include #include #include #include #include #include #include #include #include #include #include #include #include #define MID(x,y) ( ( x + y ) >> 1 )#define L(x) ( x << 1 )#define R(原创 2012-12-06 08:28:49 · 538 阅读 · 0 评论 -
poj 1005 [简单计算]
#include #include #include #include #define BUG puts("here!!!");using namespace std;const double PI = 3.1415926;int ca;double x, y;double calc;int years;int main() { cin >> ca; for(int i原创 2012-12-05 19:40:07 · 462 阅读 · 0 评论 -
poj 1004 [简单计算]
#include #include #include #define BUG pus("here!!!")using namespace std;const int N = 12;double a[N];int main() { double avg, sum = 0.0; for(int i = 0; i < N; i++) { cin >> a[原创 2012-12-05 09:07:53 · 443 阅读 · 0 评论 -
poj 2386 Lake Counting (DFS~)
// 2012-05-28 水泡个数 p2386 dfs #include #include #include #include #include using namespace std;const int N = 105;int map[N][N];int n, m;int d_x[] = {-1, -1, -1, 0, 0, 1, 1, 1};int d_y[] =原创 2012-05-28 18:08:06 · 480 阅读 · 0 评论 -
hdu 3177 Crixalis's Equipment (greedy - 沙王搬家问题 很好。。)
题目大意:向一个容量为V的洞中搬物品 每件物品有一个停放体积 可一个移动体积 问能否放下这些物品解题思路:对这些物品进行排序 按照顺序依次进入洞中 排序要尽可能使得所有的东西都能进入洞中这是一个贪心的问题 停放体积 移动体积第一件物品 a1 b1第二件物品 a2 b2假设这两件物品的移动体积都不大于洞的体积V那么将单独比较两个物品的时候会发现 a1+b2为先原创 2012-05-20 12:19:20 · 8762 阅读 · 0 评论 -
poj 3414 pots -- 最爱的 BFS (记录路径)
要明白状态是什么 : 每一个状态就是每一时刻两个杯子中水的数量。 (k1, k2)至于记录路径这里我使用的指针,自然不用指针,把每一个状态标号也是一样。不知为什么,这个题目引用 STL 中的 queue 就 RuntimeError, 难道是指针和队列内队列外的缘故。// 2012-06-03 Author : a_clay// poj 3414 pots -- 最爱的 BFS#原创 2012-06-04 18:47:40 · 829 阅读 · 0 评论 -
hdu 1856 More is better (并查集入门)
#include using namespace std;const int N = 100005;int sum, n;struct node { int par; int rank;}boy[2*N+1];// Make_Set(x) 把每一个元素初始化为一个集合// 初始化后每一个元素的父亲节点是它本身,每一个元素的祖先节点也是它本身。void make_s原创 2012-05-07 20:30:53 · 448 阅读 · 0 评论 -
poj 2386 Lake Counting (BFS~)
// 2012-05-28 水泡个数 p2386 bfs#include #include #include #include #include #include #include #define Bug cout << "here\n";using namespace std;const int N = 105;struct Point { int x, y;}原创 2012-05-28 19:32:26 · 466 阅读 · 0 评论