MDeath-Kid

- M I T & Y
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年8月19日

摘要: 解题报告:http://blog.renren.com/share/263436810/8196564875(+ 今天刚刚发现notonlysucceed大牛的主页有代码,弱了)notonlysucceed大牛的神题。出了四道说的水题外,其他近乎放弃了,1007想到了求最小支配集,怎么也木有想到能用舞蹈练解决重复选人的问题,还是A的题目不够,应当继续练习,还有1004的线段树,成段更新,成段询问,典型的线段树,但是看到过题率2.+%我就不敢写了,果然还是有没想到的地方,其实还是自己的线段树掌握的不好。。。。05是搜索,一开始没人去做,被自己无视了。。。其实可以做做的。06直接忽略。08被队友当 阅读全文

posted @ 2011-08-19 10:05 MDeath-Kid 阅读(220) 评论(0) 推荐(0) 编辑

2011年8月12日

摘要: poj 1042#define MAXNT 2000#define MAXV 60struct edge { int to; int va; edge(){} edge(int t,int v) {to = t;va = v;} bool operator < (const edge a) const { return va < a.va; }};vector<edge> adj[MAXV];int x,y,va;int V,M,stp;int path[MAXNT];bool visit[MAXNT],record[MAXV];void init() { SET(vi 阅读全文

posted @ 2011-08-12 16:35 MDeath-Kid 阅读(331) 评论(0) 推荐(0) 编辑

摘要: 判断是否存在欧拉路径,而且图必需连通!第二点忘记判断了WA了几次。HOJ 1033#define MAXN 1005#define _ufind_run(x) for(;p[t=x];x=p[x],p[t]=(p[x]?p[x]:x))#define _run_both _ufind_run(i);_ufind_run(j)struct ufind{ int p[28],t; void init(){memset(p,0,sizeof(p));} void set_friend(int i,int j){_run_both;p[i]=(i==j?0:j);} int is_friend(int 阅读全文

posted @ 2011-08-12 11:08 MDeath-Kid 阅读(180) 评论(0) 推荐(0) 编辑

2011年8月11日

摘要: 找一个以前做过的MST,用堆实现一下。Kruskaltypedef double elemt;#define _ufind_run(x) for(;p[t=x];x=p[x],p[t]=(p[x]?p[x]:x))#define _run_both _ufind_run(i);_ufind_run(j)struct ufind{ int p[MAXNT],t; void init(){memset(p,0,sizeof(p));} void set_friend(int i,int j){_run_both;p[i]=(i==j?0:j);} int is_friend(int i,int j 阅读全文

posted @ 2011-08-11 16:30 MDeath-Kid 阅读(258) 评论(0) 推荐(0) 编辑

2011年8月10日

摘要: 题目大意求一旋转向内的连线,可以想象成蜗牛的壳不得不说这个我弄的狠纠结,一开是用的Graham,带上模板,一WA到死,怒了,代码全删了,自己看过包裹法,又认真看了遍叉积,点积,自己写了个只用叉积的算法。算法思路:step 1: 第一次取y最小,y相等取x最小的点。p0step 2: 每次取第一个未标记的点pk,尝试拓展 p0-pk ,若发现存在pi 使得 p0-pi 在p0-pk 的左边(他们的叉积 < 0),则 k = i ;step 3: 重复执行step 2,直到取得所有点参考代码:HOJ 1696 1 struct POINT { 2 int x,y; 3 int idx; 4 阅读全文

posted @ 2011-08-10 17:52 MDeath-Kid 阅读(227) 评论(0) 推荐(0) 编辑

摘要: 最近codeblocks更新出现了这个问题:warning: GDB: Failed to set controlling terminal: 不允[许]的操作解决方法:更改调试终端:使用gnome-terminal作为调试终端在codeblocks菜单中选:Setting==>Environment...==>General Setting==>Terminal to lanuch console programs:用 “gnome-terminal -t $TITLE -x” 替换 “xterm -T $TITLE -e” 即可!!!不更改调试终端,而只修改xterm的字 阅读全文

posted @ 2011-08-10 09:47 MDeath-Kid 阅读(5598) 评论(1) 推荐(1) 编辑

2011年8月9日

摘要: 练习基本的计算几何。主要这个题意很BUG,线段在矩形内要T,这个看出来了,没看到输入不保证 -左上-右下-。。。POJ 1410/**9117030 MDK 1410 Accepted 688K 0MS G++ 2707B 2011-08-09 14:42:44*/using namespace std;struct POINT { int x,y; POINT(int a = 0,int b = 0) { x=a;y=b; }};struct LINESEG { POINT s; POINT e; LINESEG(POINT a,POINT b){s=a;e=b;} LINESEG() {} 阅读全文

posted @ 2011-08-09 14:48 MDeath-Kid 阅读(226) 评论(0) 推荐(0) 编辑

2011年8月8日

摘要: 第一次按位DP,按位DP主要是求在一区间上满足某种或几种关系的数字有多少个。记得我从4月份的浙大月赛碰到第一个这样的题后,碰到了好多次,可都不会啊,现在终于会了这个DP。HDU 3555这个多校的赛大概是很多人第一次的按位DP,我也是,理解按位DP用了一天+晚上的时间,虽然比赛的时候还A出来两个比较水的按位DP,但自己的思路狠不清晰,狠让我震惊的就算这个题的discuss,那位童鞋太萌了!!~我为了理解按位DP到底是怎么运行的,我自己手动算了两张纸,而且是两边啊啊啊啊啊,因为不懂啊,知道那个状态设计,但是不知的实现起来怎么就那么的费劲啊啊啊,最后终于理解了,觉得用HDU那位童鞋的代码做模板了, 阅读全文

posted @ 2011-08-08 19:07 MDeath-Kid 阅读(723) 评论(0) 推荐(0) 编辑

摘要: HOJ 2500 1 #define FOPEN freopen("/media/3CBCB387BCB33A6A/1.txt","r",stdin); 2 #define MAXN 203 3 int n; 4 short dp[MAXN][2]; 5 6 struct str_hash { 7 size_t operator () (conststring& str) const { 8 unsigned long __h =0; 9 for(size_t i =0;i<str.size(); i++)10 __h =5* __h +s 阅读全文

posted @ 2011-08-08 18:45 MDeath-Kid 阅读(310) 评论(0) 推荐(0) 编辑

摘要: HOJ 2798 1 #define MAXN 1000000 2 #define N 12 3 #define M 1<<(16) 4 int n,all,m; 5 int ans,sum; 6 7 int dp[M][N]; 8 char mat[N][N]; 9 map<string,int> mp;10 map<string,int>::iterator p;11 inline int fun(int x,int y) {12 int xln = strlen(mat[x]);13 int yln = strlen(mat[y]);14 for(in 阅读全文

posted @ 2011-08-08 18:23 MDeath-Kid 阅读(3111) 评论(2) 推荐(3) 编辑