ACM / ICPC
小尼人00
人生一直在不断的探索中,才知道一些东西的真正含义,为了在探索的路途中少走弯路,早日达到心中的愿景,我认为没有什么比开阔眼界更重要的了。
展开
-
hdu 1873 看病要排队 - 优先队列W
优先啊#include #include #include #include #include using std::priority_queue;const int N = 4;struct Node { int person_id; int weight; friend bool operator< (Node a, Node b) {原创 2014-10-19 16:48:13 · 841 阅读 · 0 评论 -
poj 3259 - spfa 虫洞问题判到点1时候有环
#include #include #include #include #include #include #include #include #include using namespace std;const int N = 5501;int n, m, q;vector > g[N+10];long long dist[N+10];bool inQue[N+10]原创 2013-06-08 11:03:56 · 829 阅读 · 0 评论 -
[算法] poj 1274 The Perfect Stall (匈牙利)
#include #include #include using namespace std;const int N = 205;bool map[N][N];int mat[N];bool vis[N];int n, m;bool dfs(int u) { for(int i = 1; i <= m; i++) { if(map[u][i] && !vi原创 2013-04-15 20:07:31 · 826 阅读 · 0 评论 -
[算法] doj 1066 最长上升子序列
#include #include #include #include #include using namespace std;const int N = 100005;int a[N];int dp[N];int n;int mmax;void solve() { memset(dp, 0, sizeof(dp)); mmax = 0; if(n > 0) mma原创 2013-04-09 15:24:15 · 984 阅读 · 0 评论 -
[acm] 动态规划的愿景
1015 Jury Compromise ac 11029 False coin ac 11036 Gangsters ac1038 Bugs Integrated, Inc. ac1042 Gone Fishing ac1062 昂贵的聘礼 ac1088 滑雪 ac1093 Formatting Text ac1141 Brackets S原创 2013-01-19 23:23:19 · 616 阅读 · 0 评论 -
线段树 : hdu 1166 示例 [ 单点更新 ]
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2013-01-18 12:52:25 · 400 阅读 · 0 评论 -
oj 中的 G++ 与 C++ 的区别
1、输出double类型时,如果采用G++提交,scanf采用%lf,prinf采用%f,否则会报错, C++,之所以可以很可能是 VC 扩充的,不是标准!2、使用GCC/G++的提醒: 根据ISO C++标准,在G++下,main函数的返回值必须是int,否则将会导致Compile Error(编译错误)的判答3、G++/GCC使用scanf、printf时注意引用,只引用不识别原创 2013-01-18 12:53:50 · 544 阅读 · 0 评论 -
poj 3414 Pots [bfs - 倒水问题]
感 : 经典的倒水问题,个人很喜欢的一道 bfs. 另外 : 今天知识 地址作为参数只能用指针来接收!否则编译错误。代码 : 为没有记录路径的 STL queue 的实现! 记录路径可以用 dfs , 状态中记录上一个节点地址,但是需要静态开辟状态,间接说明此时不能用 STL的queue记录了。#include #include #include #include #inclu原创 2013-04-21 16:49:09 · 937 阅读 · 0 评论 -
[算法] doj 1067 归并法求逆序对 Ultra-QuickSort
#include #include using namespace std;#define mid(x,y) ((x&y) + ((x^y)>>1))const int N = 500005;long long a[N];long long ans; // 记录逆序对个数void merge_sort(int l, int r) { if(l >= r) return; int原创 2013-04-09 16:40:29 · 874 阅读 · 0 评论 -
[算法] doj 1605 Common Subsequence 公共子序列
#include #include #include #include #include using namespace std;const int N = 505;char s1[N], s2[N];int dp[N][N];void solve() { int len1 = strlen(s1+1); int len2 = strlen(s2+1); memset(d原创 2013-04-09 14:34:41 · 790 阅读 · 0 评论 -
[算法] BFS : poj 2312 Battle City 示例
纪念第一次用 “优先队列”, 第一次知道 “方向数组” ! BFS : 谁出队就找谁的邻接点访问之并入队!#include #include #include #include #include #include #include #include #include #include #include #include #include #include #inclu原创 2013-01-20 00:11:57 · 575 阅读 · 0 评论 -
[面试备] 暴搜 or 二分图的经典升级 : hdu 1045 Fire Net 示例 [ 二分图 ]
二分图匹配 建图的经典之作#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ原创 2013-01-19 22:59:20 · 558 阅读 · 0 评论 -
[算法] 并查集概念及其实现
1、 概述并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。2、 基本操作并查集是一种非常简单的数据结构,它主要涉及两个基本操作,分别为:A. 合并两个不相交集合B. 判断两个元素是否属于同一个集合(1) 合并两个不相交集合(转载 2013-02-01 09:29:11 · 866 阅读 · 0 评论 -
[算法] poj 3903 最长上升子序列 dp vs (二分 nlogn)
最长上升子序列 - DP O(n*n)F[t] 表示从 1 到t这一段中以 t 结尾的最长上升子序列的长度 F[t] = max{1, F[j] + 1} (j = 1, 2, ..., t - 1, 且A[j] #include #include #include #include #include #include #include #include #incl原创 2013-01-30 21:33:08 · 607 阅读 · 0 评论 -
[面试备] 暴搜 or 二分图的经典升级 : hdu 1045 Fire Net 示例 [ 讲解之用 ]
题意: 现有一座n*n(0解法: dfs+回溯 如果题目数据大一点还要用到二分匹配。我好喜欢的一道题目!#include #include #include #include #include #include #include #include #include #include #include #include #include #inclu原创 2013-01-19 17:40:39 · 504 阅读 · 0 评论 -
[Acm] 开始你的ACM-ICPC之旅(转)
我觉得这样的文章应该有人写过的,但是Google里面貌似没有(或许有英文版)Baidu给了一个,不过不是很像样http://baike.baidu.com/view/94274.htm那我就写一个吧,这也是momodi大牛在上个学期初委托给我的一件事情。这篇文章面向的对象是没有多少基础,或者是才学C语言或数据结构的同鞋们。--首先,什么是acm/icpc?ACM/ICPC(AC转载 2013-01-30 21:51:20 · 1550 阅读 · 0 评论 -
搭建OJ-这个版本 并一直解决 RE 问题
#!/bin/bash#before install check DB setting in # judge.conf # hustoj-read-only/web/include/db_info.inc.php# and down here#and run this with root#CENTOS/REDHAT/FEDORA WEBBASE=/var/www/html APACH原创 2014-05-16 20:57:09 · 1194 阅读 · 0 评论 -
POJ 1502_Dijkstra
/********************************** Subject: POJ 1502_Dijkstra Author : a_clay Created Date : 2014-05-06*********************************/#include #include #include #include #include原创 2014-05-06 20:13:17 · 591 阅读 · 0 评论 -
ROBY_筛选法求素数 与 打表 学习, 试验可以开的数组大小, 10位int数组
/** * C++ 打印 21 内素数表 */#include #include using namespace std;const int N = 21;int a[N];/** * int b[1034567890]; 可以开这么大的数组 10 位数字的 数组 */int main() { int i, j; for(i = 2; i*i < N; i++原创 2014-05-08 13:49:33 · 633 阅读 · 0 评论 -
POJ_3468_Interval Tree 更新区间经典
--/* POJ_3468_Interval Tree 更新区间 与 h1698 类似,但是你要清楚他们的区别 -- 为负,随时查询任意一个区间,上下面 Author : a_clay Created : 2012-02-04*/#include #include #include #include #include #define get_mid(x)原创 2014-05-08 16:21:44 · 623 阅读 · 0 评论 -
POJ_3264_Interval Tree 最大最小值之差
-/* POJ_3264_Interval Tree 最大最小值之差 Author : a_clay 2014/05/08*/#include #include #include #include #include #include #define mid(x) ((x) >> 1)using namespace std;const int N = 500原创 2014-05-08 16:04:46 · 704 阅读 · 0 评论 -
POJ_2186_Tarjan Popular_Cows
popular_cow#include #include #include // INT_MAX#include #include #include #define foreach(i, v) for (__typeof((v).begin()) i = (v).begin(); i != (v).end(); ++ i)const int N = 10000;int n,原创 2014-05-08 09:39:04 · 557 阅读 · 0 评论 -
HDOJ_1711_KMP 求匹配位置
1HDOJ_1711_KMP 求匹配位置HDOJ_1711_KMP 求匹配位置/* * HDOJ_1711_KMP 求匹配位置 * * I really like this KMP in door * * Author : a_clay 2014/05/06 */ #include #include #include #include #include #i原创 2014-05-07 20:17:01 · 587 阅读 · 0 评论 -
POJ_1961 KMP next的典型应用 类似于 poj2406
--/* * POJ_1961 KMP next的典型应用 类似于 poj2406 * Author : a_clay 2014/05/06 */ #include #include #include #include #include #include #define Bug cout << "here\n";using namespace std;const原创 2014-05-07 20:27:43 · 836 阅读 · 0 评论 -
POJ_2312_BFS:priority_queue -- Battle City
POJ_2312_BFS:priority_queue -- Battle City/* * POJ_2312_BFS:priority_queue -- Battle City * * I really like this BFS:priority_queue problem * * Author : a_clay 2014/05/06 */#include #includ原创 2014-05-07 19:05:43 · 677 阅读 · 0 评论 -
POJ_3414_BFS pots
/* * POJ_3414_BFS * I really like this bfs problem * On the first and only line are the numbers A, B, and C. These are all integers in the range from 1 to 100 and C≤max(A,B). */#include #include原创 2014-05-07 16:38:29 · 530 阅读 · 0 评论 -
POJ_1915_Double BFS Knight Moves
POJ Knight Move 1915/* * POJ_1915_Double BFS Knight Moves * * I really like this double bfs problem * * Author : a_clay 2014/05/06 */#include #include #include #include #include #inclu原创 2014-05-07 16:57:13 · 593 阅读 · 0 评论 -
Java 大数的几道题目 nyist
import java.math.BigInteger;import java.util.*;/** * nyist 28 * 大数阶乘 */public class Main28 { public static void main(String args[]) { Scanner cin = new Scanner(System.in); in原创 2014-05-06 11:17:36 · 628 阅读 · 0 评论 -
[算法] poj 3356 字符串的距离 AGTC
#include #include #include #include using namespace std;const int N = 1010;int dp[N][N];char a[N], b[N];int n, m;int get_min(int x, int y, int z) { return min(min(x, y), z);}int main() {原创 2013-04-10 11:09:14 · 896 阅读 · 0 评论 -
[acm] 曾经- 刷题记录 [只有正确的坚持才是胜利]
poj 2033 1 DPpoj 1958 1 DP -----2011-08-14poj 1887 1 DP poj 2533 1 DPpoj 1952 1 DP 较难 -----2011-08-15poj 1274 1 graph theory,(匈牙利入门)原创 2013-02-01 10:00:25 · 871 阅读 · 0 评论 -
[acm] 动态规划相关的题目 [ 个人 ]
poj 1513poj 1857poj 1992 (滚动数组)poj 2192poj 2626 (三维)poj 2677 (Tour)--- 背包 ---poj 3624 01背包 (一维AC)poj 3628 01背包抽象非常好题poj 2063 完全背包 poj 1276 多重背包(入门)需要完善-未完善原创 2013-01-19 23:21:35 · 783 阅读 · 0 评论 -
[Icpc] zoj 1048 / 1049 I Think I Need a Houseboat (v w)
import java.util.Scanner;public class P1048 { static double sum = 0; static double num; public static void main(String[] args) { Scanner in = new Scanner(System.in); for原创 2013-12-20 10:24:10 · 908 阅读 · 0 评论 -
[Icpc] zoj 1037 Gridland (water C++ / Java)
规律 : 偶数行或偶数列必定存在全部为1的路径把所有点连起来, 否则m行n列中存在 m*n-1个1 和 一个 sqrt(2) 的路径连起所有点#include #include #include #include #include #include using std::cin;using std::cout;using std::endl;using std::strin原创 2013-12-19 13:38:18 · 1040 阅读 · 2 评论 -
[算法] 当今世界最为经典的十大算法--投票进行时
当今世界最为经典的十大算法--投票进行时----------------------------------------第一部分、来自圣经的十大算法第十名:Huffman coding(霍夫曼编码) 霍夫曼编码(Huffman Coding)是一种编码方式,是一种用于无损数据压缩的熵编码(权编码)算法。1952年,David A. Huffman在麻省理工攻读博士时所发明转载 2013-02-04 11:55:46 · 928 阅读 · 0 评论 -
线段树 : 区间更新 poj 3468 示例
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2013-01-18 12:53:05 · 398 阅读 · 0 评论 -
拓扑排序 : hdu 1285 示例
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2013-01-18 12:51:42 · 387 阅读 · 0 评论 -
Floyd-template 示例
#include #include #include #include #include #define BUG cout << "here\n";using namespace std;const int INF = 0x7fffffff;const int N = 105;int map[N][N];int path[N][N];int n, m;int s, t;原创 2013-01-18 12:50:56 · 401 阅读 · 0 评论 -
prim-普里姆 poj 1287 示例 [ 实现用到并查集 ]
prim算法 : 初始化-> 找最小值,更新 - 重复 找 n-1 次。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2013-01-18 12:48:16 · 464 阅读 · 0 评论 -
迪杰斯特拉 示例 : poj 2387 Til the Cows Come Home
/* 题意:一个农场有n(1 ~ 1000)个landmarks,有t(1 ~ 2000)条道路连接, 问Bessie要从编号为 n 的landmarks到编号为 1 的landmarks,最少得走多少的路程?*/#include #include #include #include #include #include #include #include #include原创 2013-01-18 12:49:35 · 449 阅读 · 0 评论 -
Kruskal poj 1287 示例 [ 实现用到并查集 ]
克鲁斯卡尔算法 (加边法) G(V, E) 带权连通无向图 (1), 将 G 中的边按权值从小到大依次选取,若选取的边使生成树不构成回路,并入 TE 中。 (2), 从剩下的边中选取边,执行操作 (1), 如此进行下去,直到 TE 中包含 n-1 条边为止,此时的T,此时的 T ,即为最小生成树。Kruskal 的实现需要用到并查集。#include #include原创 2013-01-17 18:08:30 · 435 阅读 · 0 评论