- 博客(15)
- 问答 (1)
- 收藏
- 关注
原创 dfs
http://codeforces.com/contest/510/problem/B #include using namespace std; int n,m; int ok; char edge[52][52]; int vis[52][52]; int stat[52][52]; int dir[][2]={{1,0},{0,1},{-1,0},{0,-1}}; void dfs(i
2015-02-24 22:00:54 276
原创 技巧
#include在最新的c++11标准中可以使用,包含了所有c++标准的头文件 std::ios::sync_with_stdo(false) 取消cin,cout存入缓冲区,速度变得和c的scanf(),printf()差不多
2015-02-24 20:25:52 274
原创 hdu 3466
这种变种的01背包,不看题解,就想不到状态转移的方程啊,看了题解又觉得有道理 这背包要sort一下,要求的价格减去实际的价格从小到大排序,状态转移时才能确保没有后效性。 #include #include #include #include using namespace std; struct p { int p; int ep; int w; }a[505]; bool
2015-02-18 13:10:25 388
原创 快速幂取模
1.积的取余等于取余的积的取余 ab mod c = (a mod c) * (b mod c) mod c 拓展 a^b mod c= (a mod c )^ b mod c; 快速求幂
2015-02-09 16:13:04 271
原创 poj 1157
这道题目的阅读让我纠结了,好久,题目不难,但是一开始我还是忘了考虑全是负值的情况。 状态转移方程 i 1 to f; j 1 to v; k 1 to j dp[i][j]= max(dp[i][j],dp[i-1][k]); 初始化:除了第0行全为0 ,其余全部初始化为-inf.#include #include #define inf 0x3f3f3f3f using names
2015-02-07 13:28:20 413
原创 poj 2392
看了题解做的,自己做还是很困难的 #include #include #include using namespace std; struct hehe { int h; int hmax; int n; }a[4001]; bool cmp(hehe a,hehe b) { return a.hmax<b.hmax; } int sum[40002];
2015-02-06 18:25:57 331
原创 poj 1125
我从dp的题目里翻出这道题,发现是求最短路径。用的是dijkstra算法,听说数据很水,用floyd算法应该更简洁,可是我还不会啊。好忧伤 #include #include using namespace std; const int inf=0x3f3f3f3f; int lowcost[105]; int map[105][105]; int n; int who; int d
2015-02-05 17:07:08 327
原创 poj 1018
动态规划,看着被人的题解做的,还是有个疑问 ,就是带宽的最大值是怎么确定的,题目只说明是一个整数。 状态转移方程 : dp[i][b] :其中i表示选取前i个公司的产品,b表示当前第i个公司从0 到最大值的带宽。dp[i][b]表示选取了前i个公司产品的价格。 如果 k :1 to max if(k else dp[i][b]=min(dp[i][b],dp[i-1][k]+p);
2015-02-05 10:46:11 306
原创 poj 2352
看了别人的题解,终于对树状数组有所了解了 #include #include #include using namespace std; const int MAX=32005; int lowbit(int x) { return x&(-x); } int level[322005]; int bit[32005]; int sum(int x) { int ran
2015-02-03 20:10:11 330
原创 poj 1458
LCS 一开始我是逆推,发现不行,就多加了一层循环,可是超时。 后来正推,就过了 状态转移方程 if(a[i]==b[j]) dp[i][j]=dp[i-1][j-1]; else dp[i][j]=max(dp[i-1][j-1],dp[i][j-1],dp[i-1][j]); #include #include using namespace std; int dp
2015-02-03 11:08:52 361
原创 poj 1276
总算明白完全背包和多重背包中的二进制优化是怎么回事了 #include #include #include #include #include using namespace std; int a[100002]; int dp[100002]; int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) {
2015-02-02 20:32:56 436
原创 poj 1088
代码写的很挫 记忆化搜索,对搜过的点不在进行搜索,回溯过程中得出dp[i][j]的值 #include #include using namespace std; int n,m; int dir[][2]={{1,0},{0,1},{-1,0},{0,-1}}; int a[1000][1000]; int dp[1000][1000]; int dfs(int x,int y) {
2015-02-01 18:35:17 374
原创 windows下gvim的配置文件
set backspace=indent,eol,start set number set history=1000000 set autoindent set smartindent set tabstop=4 set shiftwidth=4 set expandtab set showmatch set guifont=monaco:h10 "set guifont=Consolas:h11
2015-02-01 08:40:15 1174 1
空空如也
gvim imap 会注释所有文字怎么办
2015-02-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人