03 2012 档案

STL之 stack/queue/priority_queue
摘要:记性不好,贴点备忘的吧1、stackstack模板类的定义在<stack>头文件中。stack模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型为deque。定义stack对象的示例代码如下:stack<int> s1;stack<string> s2;stack的基本操作有:入栈,如例:s.push(x);出栈,如例:s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素。访问栈顶,如例:s.top()判断栈空,如例:s.empty(),当栈空时,返回true。访问栈中的元素个数,如例: 阅读全文

posted @ 2012-03-31 20:48 skyming 阅读(1048) 评论(0) 推荐(0) 编辑

poj 3274 Gold Balanced Lineup (神奇的哈希)
摘要:题意理解有误狠狠的把自己骗了,每个牛有K个属性,我理解成选出K中属性的,由于思维定势看看题报告没有发现这个问题。纠结,这几天总犯这种错误。。。Farmer John's有n头cow,共k个属性,每个属性用一位2进制表示。求最长连续的段,满足段里的每个属性出现的次数一样多。sum[][]记录从上之下的和,c[][]记录sum[][]从左到右的差值,把每个牛的各个属性用哈希处理即可,从上向下贪心即可。哈希数值 prime = 99983, 跑了 875MS ,prime =1000000,只跑了250MS 。至于110000 直接 TLE#include <stdio.h>#i 阅读全文

posted @ 2012-03-26 20:35 skyming 阅读(330) 评论(0) 推荐(0) 编辑

2012春季ACM内部测试赛5(水版解题报告)
摘要:A:字符串处理和 poj 上的一道题很相似,不过很长时间才明白题意,由于处理上的小错误,贡献了1WA。代码~~太丑了见不得人啊。G:简单的贪心题,从前向后贪即可,理解上有误,但是看见A的队越来越多,而且4,5百B,瞬间把小高我俩秒了,自杀啊.F:官方说是用the Pollard Rho算法做的,不是太理解。比赛的时候,由于数据太大,int 型超内存,pc 用char ,把校内的oj 水 了赛后,别的队用哈希做的10^9 --》10^6 ,映射View Code #include<stdio.h>#include<string.h>#define HASHLEN 2000 阅读全文

posted @ 2012-03-25 21:40 skyming 阅读(237) 评论(0) 推荐(0) 编辑

poj 1094 Sorting It All Out (拓扑排序)
摘要:效率太低了,反思~~~~1:题意理解错误where xxx is the number of relations processed at the time either a sorted sequence is determined or an inconsistency is found, whichever comes first, and yyy...y is the sorted, ascending sequence.明明没说是按它列的顺序求解--关系的数量,2:对环的处理上没有搞好#include<stdio.h>#include<string.h>#de 阅读全文

posted @ 2012-03-22 01:32 skyming 阅读(254) 评论(0) 推荐(0) 编辑

poj 1273 Drainage Ditches ( 最大流--Edmonds_karp算法)
摘要:终于搞定了第一网络流的题~~看了好久啊才理解题意: 求排水沟的最大流量,最大流的模版题,EK算法 若没听说过网络流,直接pass 吧.用g++提交 加上 string.h#include<iostream>#include<cstdio>#include<queue>using namespace std;const int N =210;const int inf =0x7fffffff;int map[N][N],path[N],flow[N];int start,end,m,n;queue<int> q;int bfs(){ while(! 阅读全文

posted @ 2012-03-21 02:02 skyming 阅读(266) 评论(0) 推荐(0) 编辑

poj 3083 Children of the Candy Corn(bfs+dfs 数组模拟方向)
摘要:好纠结啊,方向转晕了~~~~~先贴个半山寨的代码#include <cstdio>#include<string.h>#define MAX 45 struct node{ int x,y;}stack[2000]; int flag[MAX][MAX];char map[MAX][MAX];int dirl[4][2]={{-1,0},{0,1},{1,0},{0,-1}}; // Left firstint dirr[4][2]={{1,0},{0,1},{-1,0},{0,-1}}; //Right firstint w,h, d1,d2;int start[2] 阅读全文

posted @ 2012-03-18 13:00 skyming 阅读(200) 评论(0) 推荐(0) 编辑

poj 3278 Catch That Cow (BFS)
摘要:题意: 牛逃跑了,主人用最短的时间追到牛(在直线上) 很裸的bfs ,郁闷啊忘了判断重复了,RE ,WA !#include<stdio.h>#define N 100005int n,k;int stack[N],vis[N];int main(){ scanf("%d%d",&n,&k); int di=0,top=1,first=0,last=1; int sum=0;stack[0]=n,vis[n]=1; while(di!=top) { last--; int num=stack[di++]; if(num!=... 阅读全文

posted @ 2012-03-09 00:39 skyming 阅读(238) 评论(0) 推荐(0) 编辑

poj 2632 Crashing Robots(模拟)
摘要:题意分析: 对机器人的移动作可能结果; 1:超出矩阵范围 2:和其他机器人相撞 3:OK 对于每次命令进行模拟和判断,自己写的太乱了代码 200+ ; 第一次做的忘了对相撞的加以判断,WA ,看了discussion 里的数据 才找到错误;细心!!!#include<stdio.h>#include<string.h>int map[105][105];struct node{ int x,y; char dir;}grah[105];int main(){ int t;scanf("%d",&t); while(t--) { int x,y 阅读全文

posted @ 2012-03-08 20:52 skyming 阅读(196) 评论(0) 推荐(0) 编辑

poj 1068 Parencodings (模拟)
摘要:题意: 先输入右括号前左括号的数量 输出每个括号所含括号的数量(从左至右)思路: 由于以前模拟题留下太大的阴影,比较凌乱:没想到今天 模拟1Y 虽然题简单点,就是用-1 1 模拟 括号 ,向前搜索即可#include<stdio.h>int main(){ int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); int flag[50],top=0; int first,m; scanf("%d",&m);first=m; w... 阅读全文

posted @ 2012-03-06 21:53 skyming 阅读(168) 评论(0) 推荐(0) 编辑

poj 1035 Spell checker(字符串)
摘要:题意: 检测输入字符串和库里的字符串是否相符 相符按要求输出即可,若不符;分三种情况讨论 1;字符串长度相等 处理很简单,掠过 2;字符串不等时,分别设两个指针,从前向后,从后向前移动判断即可 注意判断边界条件 top1>di !!!#include<stdio.h>#include<math.h>#include<string.h>struct node{ char str[20];}map[10005];int main(){ int top=0; while(gets(map[top++].str)&&map[top-1].str 阅读全文

posted @ 2012-03-05 20:24 skyming 阅读(264) 评论(0) 推荐(0) 编辑

并查集分析+总结
摘要:对于并查集: 很多次都是迷迷糊糊,尤其是对并查集的优化:1.路径压缩 2.按秩合并对此个人整理了一下:对于最基本的并查集建议看看:百度百科: http://baike.baidu.com/view/521705.htm以例题的形式分析,并用算法描述了博客园: 对于有点基础的可以参考下,清晰明了http://www.cnblogs.com/cherish_yimi/archive/2009/10/11/1580839.html对于第二个优化按秩合并的部分处理有点异议:if(rank[x] < rank[y]) { num[x]=y; } else if(rank[x]> rank[y 阅读全文

posted @ 2012-03-02 19:53 skyming 阅读(1425) 评论(0) 推荐(2) 编辑

poj 2299 Ultra-QuickSort(归并排序)
摘要:维基百科:动画很帅 ,很简明说明归并排序http://en.wikipedia.org/wiki/Merge_sort 一看这题 7000MS ,果断 暴力, 结果TLE 。。。。 然后用归并写了一个,WA ,弱爆了,后来看了下解题报告, 判断条件考虑不全面。。。。。#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;const int N=500005;__int64 sum,n;int num[N],stack[N];void mergesort(int lo 阅读全文

posted @ 2012-03-01 12:29 skyming 阅读(953) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示