- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 ACM-josephus问题
这个是个古老的游戏(死亡游戏),n个人围成一圈,随便从第一个人开始从1报数,报到该数(m)的人,就被踢出,再接着往下开始从1报数包到m的数又被踢出,依次报下去,直到只剩下1个人,则该人存活下来。在这个死亡游戏里面最好生存下来的就是约瑟夫.不过,还有他的一位朋友。(这是因为他两人耍赖!).要用代码实现它,就得设计一个数据结构。满足:具有循环,随时删除一个数
2013-03-31 23:42:12 1088
原创 星星等级
题意:星星的等级是取决于下面,且在它的左边的的星星的个数(有多小个这样的星星就有是该星星的等级)。每次输入的星星垂直高度是递增的。该题的一个关键点就是处理问题的方法,要统计星星等级的个数,而高度是递增的。所以我们只要考虑在x轴的位置,对于点的增加,我们只要更新x轴以后的点,对星星等级的评估,转换求该点以前的点的和。把和作为星星的等级,再作为 统计数组的下标,最后只要自加
2013-03-31 23:23:33 832
原创 DFS-变形课
这道题类似成语接龙。题意懂了,方法很简单,就是从开头是”b“的字母寻找下去,并判断最后一个字母是否为'm'如果找的到就退去,很明显就是个递归(DFS)就可以实现了。#include#includechar a[100][20];int visit[100];int flag ,n;void DFS(int x){ int k=strlen(a[x]); c
2013-03-31 23:03:15 860
原创 A计划
这个题目是关于BFS的一个应用,这题主要是两张地图,要逾越地图必须寻找“#‘,而且要判断对应的位置是否为’#‘或'*',坐标最好用三维数组,分别赋值就行了(因为只有2张)对于位置的转移很方便。其他的就没什么大问题了.#include#includestruct node{int x,y,z,t;}a[10000];const int x_add[]={0,0,1,-1};
2013-03-31 22:48:41 832
原创 HDU-1166 敌兵布阵(树状数组和线段树)
这个题目就是对一组数据的更新和分段求和。由于数据过大,我们就会想到用树状数组。当然,先要了解它。这个题就是它的一个典型应用#include#includeint a[50005],c[50005],n;;void Add(int x,int s){while(x<=n){ c[x]+=s; x+=(x&-x);} } int sum(int x){ int s=0
2013-03-31 22:36:43 758
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人