- 博客(129)
- 资源 (7)
- 收藏
- 关注
转载 C++STL
1 STL简介 http://www.cplusplus.com/reference/stl/更加详细的资料 C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), lists(链表), 和 stacks(栈)等. C++ STL 提供给程序员以下三类数据结构的
2012-10-11 11:31:03 1869
原创 Mac Apache Django WSGI 部署
话说Django+Apache也太难部署了,先试了mod_python后来试了几个小时都不行,
2014-06-05 11:15:47 3906
原创 书上说我应该学习写博客
我将来可能是一个程序员(废话,来CSDN的还能是啥,至少我是这么认为的),作为准程序员,我确实在沟通上存在很大问题。感觉说话的时候有的事能不说绝不废话,能少说绝不多说。俗称宅(穷人好意思说宅?),每次都有这个感觉,但就是不知道怎么改进啊。今天看了一本书(《高效能程序员的修炼》),上面说要经常写作,我就上来写一篇文章(如果能叫文章的话)。平时呢经常逛QQ空间,但很少发说说上面的,唉!
2013-12-25 16:45:54 827
原创 神奇代码段
1.已经匹配了i个后再加一个字符j变成匹配e[i][j]个memset(e, 0, sizeof(e));for(int i = 1; i <= len; i++) { int fail = e[i-1][s[i]-'A']; e[i-1][s[i]-'A'] = i; memcpy(e[i], e[fail], sizeof(e[i]));}
2013-10-10 13:45:46 801
原创 动态规划优化整理
1.四边形优化 m(i, j)状态方程满足:i i = j: 0i > j: INF对于i 令s(i, j)为对应决策变量的最大值,即m(i, j)通过s(i, j)达到最优, 并且s(i, j)最大s(i, j) = MAX(i如果m(i, j)满足四边形定理, 则s(i, j) 于是m(i, j) = MIN(s(i, j-1) 2.斜率优化此处以d
2013-10-10 10:07:18 1595
原创 MakingMaker ACM
#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define Fi first#define Se second#define Mpair make_pair#d
2013-08-19 17:50:25 774
原创 HDU4676 Sum Of Gcd
题意:给定一个n的排列,询问L到R之间任意两个数的gcd之和以下是解题报告的思路,解题报告看了n久才看懂, 记一下,以免以后忘记了~~对于L到R之间的一个数A,如果数A的一个因子B在L到R之间出现了K次,则结果加上K*F[B]。例如4有因子2,出现了K次,加上K*F[2]。当然A有因子B,则A有B的因子C,又要加上K*F[C]。 假如A有因子2,除去A之外,L到R还有有1个因子2,1个
2013-08-15 22:07:06 2017 1
原创 TwoSat
有N个布尔变量Xi,另外有M个需要满足的条件,每个条件形式为“Xi为真/假 则 Xj必为真/假”。是否能给所有的Xi赋值并且满足所有的条件。struct TwoSat { vector nxt[MAXN<<1]; int mark[MAXN<<1]; int stk[MAXN<<1], top; int n; void init(int tn) {
2013-08-08 09:16:07 871
转载 Codeforces Round #182 (Div. 1) D. Yaroslav and Divisors
数学分析很重要啊~~ 求l,r之间有多少个序列对:道题给出的是1-N的一个排列,因此是一个非常特殊的问题,倍数关系的对只有NLOGN(N/1 + N/2 + ..+N/N)预处理出所有的序列对,可以统计出前缀和sum[l]表示1~l之间的对数对于每个查询(X,Y),我们将所有关系对XI>=X的,YI 可以用总数sum[y]-sum[x] - (xI=x&&yI需要对
2013-06-05 21:35:32 1226 1
原创 Uva 11248 Frequency Hopping
坑爹啊 c可能为0......又是两小时先求出最大流 然后可能修改的边只能是最小割的边, 枚举没条边保存修改之前的最大流 每次枚举时不重新找最大流直接在初始最大流上跑只要最大流超过c就可以停止了#include#include#include#include#include#include#include#includeusing namespace std;ty
2012-12-20 13:55:15 1401
原创 POJ 3565 Ants
KM 模板题#include#include#include#include#include#includeusing namespace std;const int MAXN = 107;const int INF = 1<<27;const double eps = 1e-6;struct KM { double dt[MAXN][MAXN]; double lx
2012-12-19 16:04:42 722
原创 Uva 11090 Going in Cycle!!
又WA无数。。。。。坑爹啊,就不能让我一次A吗??#include#include#include#include#includeusing namespace std;const int MAXN = 107;const int INF = 1 << 27;struct BellmanFord { vector G[MAXN]; vector W[MAXN]; dou
2012-12-19 10:41:08 836
原创 Uva 10917 Walk Through the Forest
完全没考虑原理 瞬间敲出来然后WA了。。。。。坑爹啊#include#include#include#include#include#includeusing namespace std;typedef long long ll;const int MAXN = 1007;const ll INF = 1LL<<56;struct Dijkstra { struct H
2012-12-18 20:00:00 778
原创 Uva 11374 Airpot Express
坑爹啊 INF开大了要错,还没有PE#include#include#include#include#include#include#includeusing namespace std;const int MAXN = 1007;const int INF = 1 << 27;struct Edge { int from, to, dist; Edge() {}
2012-12-18 17:47:43 1075
原创 UVA 11324 The Largest Clique
。。。 错了很多次啊 细节问题啊。。坑爹啊 两小时就这样没了#include#include#include#include#includeusing namespace std;const int MAXN = 1007;vector G[MAXN], scc[MAXN], D[MAXN];int pt[MAXN], low[MAXN], dt;int sccno[M
2012-12-17 23:06:30 983
原创 LA 4287 Proving Equivalences
强连通分量的题,tarjan算法然后缩点,记a为入度为0的点的个数,b为出度为0的点的个数,ans = max(a, b);特殊情况缩点后只有一个点 ans = 0;#include#include#include#include#includeusing namespace std;const int MAXN = 20007;int pt[MAXN], low[MA
2012-12-17 15:33:10 737
原创 LA 5135 Mining Your Own Business
仅作代码分享#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;const int MAXN = 50007;struct edge { int u, v; edge(int tu, int tv):u(tu), v(tv) {
2012-12-17 14:12:28 1380
原创 LA 3523 圆桌骑士
每一部分知识简单,合起来就容易出错了,慢慢敲,快了错误率以指数级别#include#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;const int MAXN = 1007;bool g[MAXN][MAXN];bool odd
2012-12-16 18:37:17 1402
原创 LA 4255 Guess
题目简单,错了很多次,哎不细心啊《训练指南》P309#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;const int MAXN = 17;int x[MAXN];int sum[MAXN][MAXN];int d[MA
2012-12-16 13:31:01 885
转载 回文Hash
转自 http://www.cnblogs.com/Lyush/archive/2012/12/10/2812096.html#include #include #include #include #define T 31LLUusing namespace std;typedef unsigned long long Int64;// 给定一个字符串,现在在这个串上进行一
2012-12-13 17:46:01 891
原创 UVALive 3938 "Ray, Pass me the dishes!"
线段树的应用每个结点维护3个值,最大连续和max_sub,最大前缀和max_prefix与最大后缀和max_suffix.思想:最有解要么在左边,要么在右边,要么跨越中点。维护max_sub的同时维护max_prefix,max_suffix即可。#include#include#include#includeusing namespace std;typede
2012-12-13 15:04:39 1402
原创 POJ 3517 约瑟夫问题
令F[n] 为n个人最后剩的人,f[1] = 0,f[n] = (f[n-1] + k) % n.n个人 首先走k步 删除一人 剩下n-1人就会留下f[n-1],再加上k就是n个人留下的人的编号,再对n取模即可#includeint main(){ int n,m,k; while(~scanf("%d%d%d",&n,&k,&m), n|m|k) { int i, a
2012-12-10 21:00:14 1174
转载 还可以这样打表。。。见识到了
//hdu 4389#include#includeconst int MAXV=100000;const int MAXN=10007;int s[MAXN] = {0, 11871, 11166, 10611, 10042, 9549, 9104, 8717, 8433, 8098, 7836, 11226, 10597, 10102, 9573, 9123, 8705, 8
2012-12-04 20:07:02 8310
原创 HDU 4474 BFS
简单BFS + 大数取模的应用因为n最大10000 暴搜一遍即可#include#include#include#includeusing namespace std;const int MAXN = 10007;struct node{ int v,m,pre; void init(int tv,int tm,int tpre) { v = tv, m
2012-12-03 20:06:03 772
原创 J~G~J~Q
Uva Jin Ge Jin Qu题实质:n个物品选k个 求总价值小于t的最大总价值使用背包,队长点拨,忽然领悟,背包火候不够啊。。。。。。#include#include#includeusing namespace std;const int MAXN=10007;const int JGJQ=678;int x[MAXN];int sum[MAXN];int
2012-12-02 21:50:47 1534
原创 长度不超过k的最大连续子序列(单调队列)
/*单调队列:单调队列即保持队列中的元素单调递增(或递减)的这样一个队列,可以从两头删除,只能从队尾插入.队首为最优解,插入时从队尾插入。为了保证队列的单调性,我们从队尾开始删除元素,直到队尾元素比当前需要插入的元素优因为它们已经不可能成为最优的元素了,因为当前要插入的元素位置比它们更优,值比它们更优*///长度不超过k的最大连续子序列#include#includeusing na
2012-12-02 15:31:16 3952
原创 HDU 4463 最小生成树 并查集
#include#include#includeusing namespace std;const int maxn=55;struct point{ int x,y;}pnt[maxn];struct edge{ int s,e; double len; bool operator < (edge e) const {
2012-11-29 17:23:47 708
原创 STOJ 增长率问题
觉得题不错,贴下 http://acm.sjtu.edu.cn/OnlineJudge/problem/1012Description有一个数列,它是由自然数组成的,并且严格单调上升。最小的数不小于S,最大的不超过T。现在知道这个数列有一个性质:后一个数相对于前一个数的增长率总是百分比下的整数(如5相对于4的增长率是25%,25为整数;而9对7就不行了)。现在问:这个数列最长可以有多长
2012-11-23 11:47:02 1352
原创 HDU 4466
//险过#includetypedef long long ll;const int maxn=5e6 + 7;const ll mod=1e9 + 7;int cnt[maxn];int p2[maxn];void init() { cnt[0]=0; int i,j; for(i=1;i<maxn;i++) { cnt[i] = (i/3 + (i&1?1:
2012-11-22 17:55:07 770
原创 HUD 4473
比赛的时候看都没看到这道题,现在直接看题外加解题报告,感觉好简单啊思维啊,思维啊,思维啊#include#includetypedef long long ll;ll power3(ll n){ ll ret=pow(n,1.0/3); while(ret*ret*ret<n) ret ++; while(ret*ret*ret>n) ret --; retu
2012-11-22 14:31:02 603
原创 HDU 4465
比赛的时候没想到啊~~ 想到了就是一件很简单的题。。。。。。思维啊,思维啊,思维啊。。。。。。#include#includeint main(){ int n,id=0; double p,q,cp,cq; while(~scanf("%d%lf",&n,&p)) { q=1-p; cq=cp=1;
2012-11-19 13:13:19 1251 1
原创 HDU 4455 DP
思路:已知dp[n],则dp[n+1]等于dp[n]减去最后一组长度为n的不同数的个数,因为这一组不能再加一个数使长度变成n+1 然后对于长度为n的每组加上后一个数,如果这个数在前面长度为n的串中没有出现则dp[n+1]加1#include#includetypedef long long ll;const int maxn=1000007;ll dp[maxn];in
2012-11-16 21:10:48 1964
原创 codeforces 2B The least round way
dp题,考虑最小个数的2--n2 和最小个数的5--n5 如果n2 如果出现0 设0的n2=n5=1 如果结果大于等于1 就输出1并按0的路线#include#include#include#includeusing namespace std;const int F=0,T=1;const int maxn=1007, maxf=2;const int inf=1<<
2012-11-15 15:54:55 797
原创 codeforces 2A Winner
做过最坑爹的模拟题。。。。。很多人玩一个游戏,每一轮有一个人得分或者扣分,最后分数最高的人夺冠;如果最后有多个人分数都是最高的,则这些人里面,在比赛过程中首先达到或者超过这个分数的人夺冠。现在给定最多1000轮每轮的情况,求最后的冠军是谁。#include#include#includeusing namespace std;const int maxn=1007, maxs
2012-11-15 14:31:59 1348
原创 2012 ACM 成都之行
总的来说这次比赛是失败的。。。一:团队合作差 那题我卡住了应该让队友来试试,结果我却浪费了整整两小时到最后都没做出来。二:不够细心严谨 已经意识到可能出现的错误,却一点不推理就侥幸的认为不会出错,结果迎来两个WA。队友都把公式推出来了,我在化简时却化错了,还认为队友公式出错,这是这次比赛最失败的地方,深刻检讨下。三:知识储备不够 果然是书到用时方恨少,很简单的题目
2012-11-12 13:12:43 1600
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人