随笔分类 -  CSU

CSU Scientific Conference
摘要:贪心:#include<stdio.h>#include<stdlib.h>#define MAXN 100000 + 100int Ts[MAXN], Te[MAXN], r[MAXN], n, num;int cmp(const void *_p, const void *_q){ int *p = (int *)_p; int *q = (int *)_q; return Te[*p] - Te[*q];}void init(){ while(~scanf("%d",&n)) { for(int i = 0; i < n; i + 阅读全文
posted @ 2012-05-14 21:30 BFP 阅读(215) 评论(0) 推荐(0)
CSU 1248: 非变性聚丙烯酰胺凝胶电泳
摘要:动规题,方法很巧。很像背包问题,这道题我们可以想成给了空间M,让你求价值之和与M的差最小的那个和,如果超过了M的某个和与小于M的某个和与M之差相等,取小的那个,而我们的方法是将背包空间扩充两倍,初始化f[0][0] = 1;f[i][0] = 0;我们利用01背包的知识求出2M空间的所有值,然后从f[N][j]中以M为中心向两边找,找到第一个为1的f[N][j](如果两边相等取小的),即为所求。(从整个空间开始不断的减少(增加)空间,看最近的哪一个恰好能够装满)。代码如下:#include<stdio.h>#define MAXN 2010int f[MAXN][MAXN], A[ 阅读全文
posted @ 2012-04-10 00:45 BFP 阅读(328) 评论(0) 推荐(0)
CSU 1080: A simple maze
摘要:典型的bfs。代码如下:#define MAXN 55#define INF 0x7fffffff#include<stdio.h>#include<string.h>int T, N, M, Sr,Sc,Er,Ec, min;char s[MAXN][MAXN], vis[MAXN][MAXN];int q[MAXN*MAXN], dis[MAXN][MAXN];int dx[4] = {0,0,-1,1};int dy[4] = {1,-1,0,0};void solve(int x, int y){ min = INF; memset(vis,0,sizeof(v 阅读全文
posted @ 2012-04-05 23:35 BFP 阅读(228) 评论(0) 推荐(0)