HDOJ
文章平均质量分 67
Nickqiao
这个作者很懒,什么都没留下…
展开
-
HDOJ1060
题目大意:给定一个正整数N,请输出N的N次方最左边的数。(N>=1&&n 分析:N较大,可以令:N的N次方=d.xxx * 10的(k-1)次方,其中k表示N的N次方的位数。 而位数k=lgX(取整)+1,因此d=10的(lg(N的N次方)-lg(N的N次方)(取整))次方(取整)。 代码: #include #include #include using namespace std原创 2016-04-25 12:45:38 · 562 阅读 · 0 评论 -
HDOJ1166(线段树,树状数组)
题目: Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃原创 2016-06-28 19:02:21 · 1015 阅读 · 0 评论 -
HDOJ2689(树状数组)
大意:求逆序数 分析:数据较小,可以用树状数组。数据大则用归并。用树状数组求逆序数时,数组tree代表数字x是否在序列中出现过,如果数字x已经存在于序列中,则tree[x]=1,否则tree[x]=0,此时query(x)返回值为在序列中比数字x小的元素的个数,如果序列中第i个元素的值为x,那么前i个元素中比x大的元素的个数为i-query(x)。 代码:#include #include原创 2016-07-01 19:52:26 · 576 阅读 · 0 评论 -
HDOJ1556(树状数组)
题目: Problem Description N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a Input 每个测试实例第一行为一个整数N,(N 当N = 0,输入结束。 Output 每个测试实例输出一行,包括N个整数,第I个数代表第I个气球总共被涂色的次数。 Samp原创 2016-07-01 18:36:23 · 572 阅读 · 0 评论 -
HDOJ2838(树状数组)
大意:求所有逆序数对的和 分析:对于数a,他的逆序数对之和为:逆序对数*a+a之前比a大的数。开两个树状数组,一个求逆序对数,一个求和。 代码:#include #include #include #include #define MAXN 100001 using namespace std; struct tree { int t; long long sum; }tree[M原创 2016-07-01 23:11:49 · 448 阅读 · 0 评论 -
HDU2602(01背包)
分析:01背包裸题 代码:#include #include #include #include #include using namespace std; int dp[1009]; int w[1009],c[1009]; int main() { int t,n,v; scanf("%d",&t); while(t--) { scanf("%原创 2016-07-02 23:21:43 · 396 阅读 · 0 评论 -
HDU4474(数位BFS)
大意:给一个数N(1 分析:如果n%a=m,则在n末尾加上i,新余数为(m*10+i)%a,按位搜索记录每添一个数字后的余数,余数为0则回溯输出结果。 代码:#include #include #include #include #include #include #define N 10005 using namespace std; bool vis[N], del[10];/原创 2016-07-15 14:27:13 · 912 阅读 · 0 评论 -
HDU2544(最短路)
题目: Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input 输入包括多组数据。每组数据第一行是两个整数N、M(N 输入保证至少存在1条商店原创 2016-07-04 17:04:29 · 518 阅读 · 0 评论 -
HDU1426(DFS)
题目: Problem Description 自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视。 据说,在2008北京奥运会上,会将数独列为一个单独的项目进行比赛,冠军将有可能获得的一份巨大的奖品———HDU免费七日游外加lcy亲笔签名以及同hdu acm team合影留念的机会。 所以全球人民前仆后继,为了奖品日夜训练茶饭不思。当原创 2016-07-15 19:10:20 · 571 阅读 · 0 评论 -
HDU1398(母函数)
大意:有不通面值的硬币,对于给定的值有多少组成方法。 分析:构造母函数(1+x+x^2+x^3+...)(1+x^4+x^8+.....)...(1+x^209+x^508+....)。 代码:#include #include #include #include #include using namespace std; int c1[305], c2[305]; int a[17原创 2016-07-06 00:12:38 · 645 阅读 · 0 评论 -
HDOJ1003(DP)
大意:给一串数字,求最大子序列和。 分析:暴力超时,DP求解。 if(dp[j-1] 0) dp[j] = a[j] ; else dp[j] = dp[j-1]+a[j] ; 代码: #include #include using namespace std; int main() { int t,num=0; scan原创 2016-04-25 13:02:30 · 538 阅读 · 0 评论 -
HDU1301(最小生成树)
大意:给定一个图,求能连接所有点的最少权值和。 分析:最小生成树Prim算法。 代码:#include #include #include #include #include using namespace std; const int INF = 1 << 30; int map[27][27];//map存图 int d[27];//记录每2个点间的最小权值 bool visit原创 2016-07-02 23:29:14 · 1185 阅读 · 0 评论 -
HDU1231(DP)
题目: Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和 为20。 在今年的数据结构考卷中,要求编写程序得到最大和,原创 2016-07-30 21:35:31 · 774 阅读 · 0 评论 -
HDU1085(母函数)
大意: 面值为1分,2分,3分的硬币各有a,b,c枚,求不能用这些硬币表示的最小值。 分析:硬币能够表示的最大值max=1*a+2*b+5*c,计算1,2,3...max,max+1的系数是否为0,若0则不能表示。 代码:#include #include #include #include #include using namespace std; int c1[10050], c原创 2016-07-10 22:49:36 · 725 阅读 · 0 评论 -
HDOJ1754(线段树)
题目: Problem Description 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 Input 本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有原创 2016-06-28 19:48:52 · 818 阅读 · 0 评论 -
HDOJ5650
大意:给出一个数字集合,对其所有子集进行异或操作,输出结果。 分析:异或(xor):按位运算,相同为0,不同为1。每一个数出现的次数为C(n-1,n-1)+C(n-1,n-2)+...+C(n-1,1)+1=2^(n-1)。只要有1个以上的数结果必为0. 代码: #include #include using namespace std; int a[1005]; int main() {原创 2016-04-25 13:01:13 · 407 阅读 · 0 评论 -
HDOJ1180(BFS)
题目: ProblemDescription Hogwarts正式开学以后,Harry发现在Hogwarts里,某些楼梯并不是静止不动的,相反,他们每隔一分钟就变动一次方向. 比如下面的例子里,一开始楼梯在竖直方向,一分钟以后它移动到了水平方向,再过一分钟它又回到了竖直方向.Harry发现对他来说很难找到能使得他最快到达目的地的路线,这时Ron(Harry最好的朋友)告诉Harry正好有一原创 2016-04-25 13:06:30 · 127 阅读 · 0 评论 -
HDOJ1372(BFS)
大意:字母代表列,数字代表行,马走日,给出坐标求最小步数。 分析:BFS。。。 代码: #include #include #include #include #include using namespace std; typedef pair P; int next1[8][2]={{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1},{-2,1},{-1,2原创 2016-04-25 13:05:20 · 465 阅读 · 0 评论 -
HDOJ2717(BFS)
大意:在x轴上可以走到x-1或x+1或2*x的位置,给出起点位置和目标位置,求最小步数。 分析:BFS水题。 代码: #include #include #include #include #include #include #include using namespace std; int num[100005]; int bfs(int x,int y) { queueq; whil原创 2016-04-25 13:04:17 · 516 阅读 · 0 评论 -
HDOJ1548(BFS)
大意:n层楼,坐电梯从a层到b层。第i层有一个数Ki,可以上到i+Ki层,可以下到i-K层。求最少几次能从a到b层。 分析:BFS水题。 代码: #include #include #include #include using namespace std; int n, a, b; int k[205]; int e[205]; queueq; int bfs(int x, int y)原创 2016-04-25 12:57:32 · 675 阅读 · 0 评论 -
HDOJ2037(贪心)
ProblemDescription “今年暑假不AC?” “是的。” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。 作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女原创 2016-04-25 12:51:01 · 434 阅读 · 0 评论 -
HDOJ1051(贪心)
题目大意: 有一堆n个木棍,长度质量已知,机器处理木棍需要设置时间,规定 (1)第一根木棍的设置时间是1min (2)前一个处理的木棍长度和质量小于等于后一个就不用设置时间,否则需要1min设置 找到最小建立时间。 如 给出(4,9)(5,2)(2,1)(3,5)(1,4)则最小建立时间(1,4)(3,5)(4,9)(2,1)(5,2)。 分析: 根据l进行从小到大排序,当l相同时,原创 2016-04-25 12:52:55 · 782 阅读 · 0 评论 -
HDOJ1242(BFS)
大意:r是起点,a是终点,遇到x时间加一,求到达最短时间。 分析:BFS水题。。。。 代码: #include #include #include #include using namespace std; int n,m; int next1[4][2]={{0,1},{0,-1},{1,0},{-1,0}}; typedef pairP; char map[205][205]; int原创 2016-04-25 13:18:47 · 706 阅读 · 0 评论 -
HDOJ1175(BFS)
Problem Description “连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但事实上这是错的。现在已经酿成大祸,就只原创 2016-04-25 19:46:07 · 506 阅读 · 0 评论 -
HDU2579(BFS)
大意:由Y到G,遇到#如果步数是K的倍数则可以走,求最小步数。 分析:点可以重复走,对于每一点如果步数对k取余相同,则可视为同一状态,不入队。 代码: #include #include #include #include using namespace std; char map[102][102]; int num[102][102][10]; int next1[4][2]={{1,0原创 2016-04-25 19:50:26 · 665 阅读 · 0 评论 -
HOOJ1290 2050(递推)
大意:1.我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。 2.在蛋糕上切了N刀(校长刀法极好,每一刀都是一个绝对的平面),最多可以把这个球形蛋糕切成几块呢? 分析:1.第n条线有4*(n-1)个交点,产生4*(n-1)个线段,2条射线,新增4*(n原创 2016-05-22 21:30:18 · 525 阅读 · 0 评论 -
HDOJ1800(哈希)
大意:教士兵飞扫帚,例 5名士兵ABCDE水平为2 4 5 6 4。 C教B,B教A,A,B,C,用一把扫帚,D教E,D,E用一把扫帚。求需要最小数目的扫帚。(士兵的级别数小于30位) 分析;只需要求出某个值出现最多的次数。位数过大所以hash,开放地址法解决冲突。 代码:#include #include #include #define maxn 7003 using namesp原创 2016-05-17 23:22:40 · 784 阅读 · 0 评论 -
HDU1863(最小生成树)
题目: Problem Description 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。 Input 测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路原创 2016-07-03 22:51:45 · 870 阅读 · 0 评论