- 博客(48)
- 收藏
- 关注
原创 51nod 算法马拉松 天堂里的游戏
还算是比较著名的博弈问题天堂里的游戏李陶冶 (命题人)System Message (测试)基准时间限制:1 秒 空间限制:131072 KB 分值: 10多年后,每当Noder看到吉普赛人,就会想起那个遥远的下午。Noder躺在草地上漫无目的的张望,二楼的咖啡馆在日光下闪着
2015-06-06 14:51:33
752
原创 51nod 算法马拉松 集合计数
列出等式之后 发现是二元一次不定式 求正整数解 然而并不会求解 枚举肯定超时 经过一番搜索 发现是扩展欧几里德 然后现学现卖了一下 然而边界问题 涉及到四个实数化整 并求交集 需要考虑的太多 一时考虑不清楚 决定暴力枚举 然后只过了一半数据 只好又回头处理边界问题 静下心来 仔细一思考 边界问题也并不是那么难处理集合计数System Messa
2015-06-06 14:45:15
1075
原创 poj 3083
解决好方向问题就ok#include #include #include #include #include using namespace std;#define met(a, b) memset(a, b, sizeof(a))const int N = 45;bool flag;char g[N][N];int m, n, ans, vis[N][N];
2015-06-03 20:41:32
437
原创 poj 2531
暴力搜索 因为数据太弱 并不想去加什么剪枝#include #include #include #include using namespace std;#define met(a, b) memset(a, b, sizeof(a))const int N = 25;int g[N][N], vis[N], n, ans;void dfs (int k, in
2015-06-03 19:28:45
433
原创 hdu 5254
简单搜索 广搜 深搜 随便搜 开始想用vis 标记是否访问过 然后发现访问过的仍需访问 并不能用vis 标记 于是就想了另外一种方法 用三个方向 每次去访问四个对角 只有当 邻接对角 内元素为1 且 相邻两个方格内元素至少有一个为0 才去访问这个点 这样就保证了不会重复访问无用的点#include #include #incl
2015-06-01 15:23:22
438
原创 hdu 5256
卡到 1002 的 krushal 然后就一直没看这道题目#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=100010;const int INF=1000000
2015-05-31 20:49:31
810
原创 hdu 5253
没想到百度之星跪这么惨...本以为很简单的最小生成树 结果爆内存 超时 re 各种错 连一个wa都没有 归根究底 居然只是以为一个Find 函数写错了 因为抄的以前的代码 所以一直t到死 都不知道怎么回事#include #include #include #include #include #include #include #include #incl
2015-05-31 20:42:13
1001
原创 poj 1014
拆分物品然后dfs 果断超时 加上各种剪枝 甚至剪树之后还是超时 无奈想用贪心 倒排序水过的 居然wa 从讨论终于发现了证明这种贪心方法错误的例子2 2 3 3 3 5 这样贪心是没法解决的 可是居然过了那么多能不能拆能两份的题目然后是另外一种dfs 不明白为什么 不超时#include #include #include #includ
2015-05-31 13:39:32
382
原创 poj 1564
写这个用了不少容器 记录一下#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long
2015-05-30 17:39:00
418
原创 hdu 5234 Happy birthday
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;typedef long double ld;c
2015-05-27 18:32:59
383
原创 hdu 5228 ZCC loves straight flush
看英语看得困得慌 随便写了一道题 还是比较水的 直接暴力枚举所有同花顺的情况 看已经给出几张牌 去最小值即可#include #include #include #include #include #include #include #include #include #include #include #include #include usi
2015-05-19 15:50:03
540
原创 zzuoj 10409
此题是省赛 D题 点击打开链接 比赛时没有仔细看这道题 乍一看 什么流 什么最小费用 又因为比赛前正在写网络流 当下立即以为是最小费用最大流 想套模版 发现又不是费用流 一时有没有什么好想法 后来就一直卡c了 也没有时间去看这道题目 然后听人说这道题仍旧可以用最短路去做 又仔细老板探讨了一下 感觉他所说的dijkstra 完全就是prim 只不过要自己选定费用最小的源点罢
2015-05-19 10:35:22
384
原创 zzuoj 10408
此题是河南省第八届acm C题 点击打开链接比赛时写这道题由于学长给了一种奇葩的建图方式 导致浪费了两个小时去写搜索 当然最终也没有过这道题 后来和老板他们讨论 说起配合的问题 说不应该先听队友的思路 否则容易被先入为主 没有别的想法 在轻院已经吃亏 由于长期缺乏组队经验 我并没有意识到改正 正确的应该自己也看下题 想想自己的思路 然后和队友去讨论当时的建图方法是 是 a b c
2015-05-19 10:22:47
559
原创 poj 1191
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;typedef long double ld;c
2015-05-07 13:26:05
413
原创 Twenty-fourpoint
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;typedef long double ld;c
2015-05-06 19:59:11
482
原创 poj 1088
记忆化搜索因为写错边界 错了n次不知道怎么回事#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;
2015-05-04 20:58:11
326
原创 poj 1050
省赛前练习点动态规划#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;typedef long d
2015-05-04 19:39:06
366
原创 poj 3281
终于在有模版 有算法书的情况下 倒腾了半天 a了人生中第一道最大流题意:有n头牛,f种食物, d种饮料,每头牛都有自己喜欢的饮料和食物,问最多能让几头牛同时得到喜欢的食物和饮料.关键是建图 增加一个超级汇源 s 一个超级汇点t然后 s 与食物连边 饮料与t 连边 为了防止一头牛不会被多组食物分配 所以将牛拆开然后就是 s - 食物 - 牛 -
2015-04-30 20:45:33
397
原创 网络流模版
终于找到了心仪的网络流模版首先是Dinic/*Dinic 模版 (刘汝佳) 支持重边 加入当前弧优化递归写法 如果递归爆栈 改用ISAP*/#include #include #include #include #include using namespace std;typedef long long ll;typedef long double
2015-04-30 14:37:18
491
原创 hdu 4734
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;typedef long double ld;c
2015-04-29 13:19:56
392
原创 poj 1850
排列组合...长度为n的总方案共有 c (26, n)对于 vwxyz 来说 是从 a -> ab -> abc -> abcd ->abcde ->vwxyz所以先加上之前的总组合数 c (26, 1) + c (26, 2) + c(26, 3) + c(26, 4) 再来看 abcde ->vwxyza_ _ _ _ -> 需要 a -> b -> c ...
2015-04-28 20:54:40
450
原创 hdu 3652
总算自己套模版套出来一道 虽然是思维 不过代码比三维的精简#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long
2015-04-28 18:53:03
490
原创 hdu 3555
坚持写数位dp 套模板 好像有了一些更深的理解#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;t
2015-04-28 16:27:31
292
原创 codeforces 55D Beautiful numbers
写了两道数位dp了 还是比较朦胧#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;type
2015-04-28 15:26:14
374
原创 hdu 2089
开始学一下数位dp 有一个地方不理解 先标记一下#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;
2015-04-27 20:48:49
355
原创 位运算总结
常用的有 判断奇偶 &if(a & 1)== 1 则a是奇数 if (a&1) == 0 则 a是偶数>> a >> = n 相当于 a / 2^ na ^= b ^= a ^= b 交换两个变量的值 如果有0则不能交换与(&)0 & 0 = 01 & 0 = 0
2015-04-22 21:13:06
297
原创 hdu 3756
三分首先三维变二维L这条线必定和某一个给定的点擦边,也就是经过那个点,我们假设它经过P(a, b), 并且L的斜率为K(K 可以利用这个方程表示出来:H = -a * K + b;R = -b / K + a;那么所求的圆锥的体积就是:V = pi*H*R^2 = pi * (-a * K + b) * (-b / K + a) ^
2015-04-22 15:24:09
515
原创 hdu 2438
在网上看到两种方法 始终不能理解另一种方法 还好另外一种方法正确性显而易见车转弯的时候车有段与地面的夹角角度是从0度变化到90度的。也就是转弯的时候需要一个最大的宽度才能过去。 否则就卡在 那里了。这个宽度PH是先增加后减少的。是个凸型函数,因此是三分求的极值。直线y的斜率为tan(θ),还经过点(0, Lsin(θ)+D/cos(θ))因此得到y的直线
2015-04-21 16:49:38
389
原创 zzuli 1731
比赛时写这道题 跟着学长的思路走 咬定就是二维树状数组 结果后来时间从1s加到3s 还是一直超时 想在区域赛的时候夜市死在超时上 到最后也是没能写对这道题 后来听了学弟的思路才恍然大悟 数据这么有规律 完全可以用等差公式求出和 复杂度是O(1 ) 完全没有超时的可能 并且m n 也完全没有发挥作用 1s的时间 用cin读入也能轻轻松松过
2015-04-20 17:57:23
522
原创 hdu 2289
简单二分 主要是圆台体积公式水平面的半径u可以根据直角梯形的面积求出:(r+u)*h + (u+R)*(H-h) = (r+R)*H得出(R-r)*h = (u-r)*H得 u = r + (R-r)*h/H圆台体积计算公式:V= π*h*( R^2 + R*u + u^2 ) / 3#include #include #include #include #in
2015-04-14 16:56:11
535
原创 hdu 2899
很简单的三分 也可以求导 二分#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;type
2015-04-14 16:21:13
338
原创 hdu 1712
ACboy needs your helpTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4684 Accepted Submission(s): 2514Problem DescriptionACbo
2015-04-11 18:16:51
326
原创 hdu 3732
Ahui Writes WordTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2245 Accepted Submission(s): 824Problem DescriptionWe all kno
2015-04-11 17:26:18
313
原创 hdu 1063
#include #include #include #include #include #include #include #include #include #include using namespace std;const int N = 200;const int INF = 0xfffffff;//typedef long long ll;typedef
2015-03-23 21:32:34
406
转载 关于STL中vector使用unique()去重的问题
STL中Unique函数的作用是去除相邻重复元素#include#include#includeusing namespace stdint main(){int a[10] = {7,4,1,7,4,1,7,4,1,0};sort(a,a+10);//小到大vectorver(a,a+10);vector::iterator iter = un
2015-01-23 16:21:46
1561
原创 hdu 1556 Color the ball
1 标记起点 -1 标记终点#include #include #include using namespace std;const int N = 100000 + 10;int x[N];int main (){ int n, i, a, b; while (cin >> n, n) { memset (x, 0, sizeo
2015-01-21 18:09:48
486
原创 hdu 1754 I Hate It
#include #include #include #include #include #include using namespace std;const int MAXN = 200000 + 10;int a[MAXN], c[MAXN], n, m;int lowbit (int x);int getmax (int l, int r);void add (int
2015-01-21 17:46:26
346
原创 hdu 1286 找新朋友
欧拉函数#include using namespace std;int ef(int n);int main(){ int m, n; cin >> n; while (n--) { cin >> m; cout << ef (m) << endl; } return 0;}int ef
2015-01-20 17:15:57
407
原创 hdu 1203 I NEED A OFFER!
#include #include #include #include using namespace std;#define N 11000struct node{ int a; double b; bool operator < (const node &x) const { return a * x.b < b * x.a;
2015-01-17 15:17:50
393
原创 hdu 1160 FatMouse's Speed
#include #include #include using namespace std;#define N 1100struct node{ int w, s, num;};bool cmp (node a, node b){ if (a.w != b.w) return a.w < b.w; else retu
2015-01-17 11:34:40
434
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人