上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 38 下一页
摘要: http://poj.org/problem?id=2251很简单的求最短路径的BFS题目,才开始自己写了各DFS直接性TLE。。。三维的,就是多加了两个方向罢了,再处理的时候就按i,j,k来;View Code #include <iostream>#include <cstring>#include <cstdio>#include <queue>#define maxn 33using namespace std;struct node{ int x,y,z; int len;}s;char map[maxn][maxn][maxn];bo 阅读全文
posted @ 2012-04-13 20:30 E_star 阅读(209) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1321自己真是本了开始写了歌对于棋子有顺序的搜索,导致求出来是ans的阶乘种数了,因为k < n且不能在同一行同一列,只要按行搜索,记录列是否被访问过即可!View Code #include <iostream>#include <cstdio>#include <cstring>#define maxn 12using namespace std;char map[maxn][maxn];bool vt[maxn];int n,m,ans;void dfs(int x,int len){ int 阅读全文
posted @ 2012-04-13 10:42 E_star 阅读(217) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3009注意两点:1:只有当冰壶的所有可能走的方向上有0可以移动时,他才能移动,这里就是这组数据的解释6 11 1 2 1 1 3 因为2左右都是1不能移动座椅不能走。2:但冰壶蹦到障碍物时,障碍物会破碎,此处就会变成可以走的路线了。View Code #include <cstdio>#include <cstring>#define maxn 24using namespace std;int sx,sy,ex,ey;bool flag;int ans,n,m,map[maxn][maxn];int dir[4][ 阅读全文
posted @ 2012-04-12 21:49 E_star 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 昨天晚上做了一下CF。本来心情很好,提交了三道题。比以前总是两道提高了一道题啊。。可是今天醒来发现,就对了一道。。伤心啊。。。ratingA:自己多考虑了一下,中间小小的卡了一下精度,提交时没考虑,去了自己多考虑的情况就对了,如果不去加上高精度也对。哎。还是不够缜密。n个瓶子,原来装有a[i]毫升Ber-Cola,大桶里中有b升Ber-Cola,要将b升分到n各瓶子里,是每个瓶子的容量相等,只要求出总的平均数,然后依次判断每个瓶子要装多少,如果出现大于平均数的就输出NOView Code #include <iostream>#include <cstdio>#incl 阅读全文
posted @ 2012-04-09 22:51 E_star 阅读(352) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/webcontest/contest_show.php?cid=18871001:将一个数转化成-2进制的数,同样对这个数模-2倒取于,分清正数与负数,两种不同的情况;View Code1002:DFS;给的数据很小所以暴力就可以过,首先求出n个字符串的全排列,然后检查是否可以连接,求最后的长度,枚举出最小的值。在这里又犯了个不可原谅的小错误。。唉。细心。。View Code1003:字典树;每个点减去空格的ASSIC码,(应为空格的ASIIC吗最小),然后插入,查找。View Code1004:贪心;可以想象成上升沿与下降沿,求顶峰的值,中间的细节 阅读全文
posted @ 2012-04-09 22:01 E_star 阅读(199) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2418字典数编号,统计每个单词出现的次数,然后计算频率:View Code #include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#define maxn 10007using namespace std;struct node{ int flag; node *next[100];}*head,H[999999];int pos;int L;struct 阅读全文
posted @ 2012-04-06 21:56 E_star 阅读(205) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/vcontest/vtl/problemlist/showproblemlist/vtlid/33671009 原来比赛做过的一个题目,由于最近写了几个字典树的题目,所以我对每个姓名编号的时候用字典树写的可是不知道哪里出了错误,老是wa弄得整个比赛的心情一团糟,最后我直接暴枚举力标号,已提交a了。。郁闷啊。。。思路:输入A找与A有公共朋友最多的B,如果和A有公共朋友最多且相等的话就按字典序输出。。注意:在找A的后继的后继B时,1:B不能是A本身:2:也不能是A的直接朋友。相当于一个模拟找的过程。。View Code #include <iost 阅读全文
posted @ 2012-04-05 21:14 E_star 阅读(202) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/contests/contest_show.php?cid=392我们还是很水啊。。。。加油感觉今天的题都挺难的,我和von一起组队做的,就出了两道题。郁闷啊。。A:没看B:前5道是von负责的,由于前几天做过一道优先队列的bfs所以von很快就1Y了。orz..赛后自己也敲了一下1Y:代码:View Code #include <cstdio>#include <cstring>#include <iostream>#include <queue>#define maxn 507using names 阅读全文
posted @ 2012-04-03 20:33 E_star 阅读(206) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2513才开始自己对欧拉路的理解成了汉密尔顿路;欧拉路:给定无孤立节点的图G,(连通图),若存在一条路,经过图中每边一次且仅一次,该条路是欧拉路;汉密尔顿路则是:给定无孤立节点的图G,(连通图),若存在一条路,经过图中每点一次且仅一次,该条路是汉密尔顿路;这样用字典树映射字符串的编号,并查集判断连通,欧拉路判断:1 :必须是连通图;2:有0个或2个奇数度数的节点View Code #include <cstdio>#include <cstring>#include <queue>#include < 阅读全文
posted @ 2012-04-02 22:12 E_star 阅读(229) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1442看了好几遍才懂了题意:就是给你m个数(要进入box的),然后是n个数u[i .. n],每个u[i]表示询问:当前u[i]个数进入box之后,求第i小的数。。用两个优先队列分别建立大顶堆,小顶堆:小顶堆存放新加进来的数,大顶堆存放前边出现的数。。。小顶堆存放新加进来的数并且维持着小顶堆里面的最小值,一定大于大顶堆里面的所有值。大顶堆记录的是当前所有出现的数的最小的几个(个数是上一次出现的序列的个数)例如u[2] = 2-->u[3] = 6q2 : 3,1q1: -4=>q2: 1,-4q1: 3;=>q2: 1,- 阅读全文
posted @ 2012-04-02 19:44 E_star 阅读(208) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2442题意很简单,思路就是任意的两个含有m个元素的序列求和,用o(nlgn)的堆来维护n个最小元素,最终得到的丢里面的元素就是所要求的。。。stl中堆得应用:STL里面的堆操作一般用到的只有4个:make_heap();、pop_heap();、push_heap();、sort_heap();他们的头文件函数是#include 首先是make_heap();他的函数原型是:void make_heap(first_pointer,end_pointer,compare_function);一个参数是数组或向量的头指针,第二个向量是尾指针。 阅读全文
posted @ 2012-04-01 19:50 E_star 阅读(209) 评论(0) 推荐(0) 编辑
摘要: A:bfs+优先队列。。。。第一天只能感染defence小于等于1的并且与之连接的机器,第二天只能感染defence小于等于2的并且与之连接的机器.。。。。。依次往后推。View Code #include <cstdio>#include <cstring>#include <iostream>#include <queue>#define maxn 505using namespace std;int g[maxn][maxn],ct[maxn*maxn];int dir[4][2] = {{0,1},{0,-1},{1,0},{-1,0}} 阅读全文
posted @ 2012-03-31 21:02 E_star 阅读(209) 评论(1) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3253View Code #include #include #include #include #define maxn 20007using namespace std;struct cmp{ bool operator() (int &a,int &b) { return a > b; }};int main(){ priority_queue,cmp>q; int n,i,sum,a; while (~scanf("%d",&n)) { while (!q.empty()... 阅读全文
posted @ 2012-03-31 11:25 E_star 阅读(223) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2503很简单的一个哈希,本来想求和然后模一个数哈希呢,提交果断tle。。。郁闷。最后看了看别人的哈希,在处理的时候好像用到了经典的unix的ELF哈希函数给输入字符串生产哈希值.我直接套的这个函数,提交就A了。。。unix的ELF哈希函数View Code unsigned int ELFHash(char* str){ unsigned int hash = 0; unsigned int x = 0; while (*str){ hash = (hash << 4) + (*str++); ... 阅读全文
posted @ 2012-03-31 10:12 E_star 阅读(177) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2002首先枚举正方形的任意两点,然后有由这两点确定其他两点,确定后再到给定的点中做二分查找如果都存在,则找到了一个正方形。首先排序,然后查找,记住这里重复计算了,要除以2推导过程转载自:http://blog.csdn.net/zsc09_leaf/article/details/6204705公式推导://如图所示,正方形的四个点分别为(x1,y1),(x2,y2),(x3,y3),(x4,y4)//假设一开始给出的点为(x1,y1),(x2,y2)且已排序//根据全等三角形,可以得知2个蓝色△全等,2个红色△全等(注:此处也可推右边的正 阅读全文
posted @ 2012-03-30 11:50 E_star 阅读(259) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1840刚拿到这道题时,想到的肯定是暴力枚举啊。肯定超时。想到了立方乘系数,如果再枚举的话,还是会超时的。。无语。。最后看了看了结题报告。。果然霸气。。。思维还是不够灵活是。。将式子a1*x1^3 +a2*x2^3 + a3 * x3^3 + a4 * x4^3 + a5 * x5^3 = 0;转化成a1*x1^3 +a2*x2^3 + a3 * x3^3 = - a4 * x4^3 - a5 * x5^3两边相等,将左边的数利用hash建立映射,然后枚举右边的数和利用hash查找。。。开散列:挂链 891msView Code #inclu 阅读全文
posted @ 2012-03-29 19:55 E_star 阅读(196) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2151题意是:对于acm出题,出m到题,你要保证每支队伍至少做出一道题目,并且冠军队伍要做出至少n道题目;我们只要求出所有队伍至少解决一道题目的概率(pa),和所有队伍解决出(1--n -1)到题目的概率pb,然后pa-pb就是我们所需要的答案了。。dp[i][j][k] 表示第i支队伍,在前j道题目中,解决了k道题目的概率;则有dp[i][j][k] = dp[i][j - 1][k]*(1 - p[i][j]) + dp[i][j - 1][k - 1] *p[i][j];分第j道题目做出来与没做出来两种情况dp[i][j][0] = 阅读全文
posted @ 2012-03-29 16:36 E_star 阅读(216) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/contest/168A:很水的题,可是个竟然错了一次丢人啊,当时舍友在给女朋友打电话,所以有点分心吵啊。。。粗心的错误。先求出总共需要的巫师数量t,然后与x参加的巫师数量比较,如果大于x输出t-x,否则输出0..这里LDJ处理的时候printf("%.lf",ans);这里会有四舍五入,所以导致了错误,借鉴。。。B:虽然属于简单题,但是题意没看懂。。。郁闷。。其实题意很简单:就是如果不是amplifying line,则不输出空格和换行,如果是amplifying line则原样输出,特殊情况:两个amplifying line 阅读全文
posted @ 2012-03-28 21:07 E_star 阅读(306) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3274看到这个题的时候直接给理解错了,以为求存在第k个属性,的牛的个数,直接谢了个排序+二分查找样例过了一交WA了。。心情很郁闷。。自己完全把题意理解错了。题意是求满足i到j 的差值最大且i到j牛的前k个属性每种属性求和,并且和要相等。求出最大的j - i;sum[i][j] 表示从第一头牛到第i头牛拥有j属性的牛的个数,则根据题意有,如果i -> j 最大则有sum[j][0] - sum[i][0] = sum[j][1] - sum[i][1] = sum[j][2] - sum[i][2] = .......... = sum 阅读全文
posted @ 2012-03-27 21:56 E_star 阅读(247) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3349用开散列的方式处理哈希,才开始的时候,在isok判断两个雪花是否行等时,我错认为只要找到一个相同的数字,然后顺时针逆时针寻找如果没能查找到就算是不想等了,两组数据可能有形同的数字不知一个,所以在这里贡献了好几次WA.笨啊。。。例如数据:21 2 3 2 4 52 4 5 1 2 3应该是相同的。。。挂链方式处理。。View Code #include <iostream>#include <cstdio>#include <cstring>#define maxn 177777using names 阅读全文
posted @ 2012-03-26 21:14 E_star 阅读(226) 评论(0) 推荐(0) 编辑
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 38 下一页