![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM
@bigfive
这个作者很懒,什么都没留下…
展开
-
HDU-1847 Good Luck in CET-4 Everybody!
HDU-1847思路给你一堆石子,两人轮流取,每次只能取2的幂次数目(1,2,4,8…)个石子,取到最后一个石子的获胜。 网上有大牛用SG函数打表找规律直接得到:石子数是3的倍数时先手必败,否则先手必胜。 这里用动态规划的思想,设计出递归型动规程序,说白了就是记忆化搜索。用一个bool数组记录每个n的胜败情况。 必胜态一定有一条路一步进入必败态,必败态一步无论如何只能进入必胜态。具体...原创 2018-09-04 19:47:24 · 320 阅读 · 0 评论 -
ZOJ-1002 Fire Net
题目链接ZOJ-1002 Fire Net题意给你一个n*n的图(n<=4),‘X’代表墙壁,’ . '代表空地,问你这张图中最多可以放多少炮台(两个炮台不可以放在同行同列,除非中间有墙壁)?思路深搜,对于每一个位置,都有放炮台与不放两种选择,递归计算两种选择的最终放置炮台数,不断更新最大值即可。该题的check函数比较巧妙,具体看代码注释。#include<iostr...原创 2018-09-21 11:56:18 · 290 阅读 · 0 评论 -
hdu-1083 Courses (二分图)
原题链接hdu-1083 Courses题意一共有N个学生跟P门课程,一个学生可以任意选一门或多门课,问是否达成:1.每个学生选的都是不同的课(即不能有两个学生选同一门课)2.每门课都有一个代表(即P门课都被成功选过)输入为:P N(课程数跟学生数)接着有P行,格式为Count studenti studenti+1 ……studentcount(Count表示对课程1感兴趣...原创 2018-09-26 00:10:50 · 289 阅读 · 0 评论 -
POJ - 2481 Cows
题目链接POJ - 2481 Cows题意计算每个区间有多少个包含它的区间。思路树状数组只能计算前缀和,那么前缀和首先得有前缀啊。我们要计算一个区间有多少个包含他,那么所以越小的区间要越晚处理。那么我们按照y从大到小排序,x从小到大,然后就像慢慢逼近小区间一样,计算x的前缀和就好了。 感觉和poj-2352类似。 #include<iostream>#i...原创 2018-09-15 00:21:09 · 175 阅读 · 0 评论 -
POJ-2352 Stars
题目链接 POJ-2352 Stars 题意给你n个星星的坐标,已经按y坐标排序(y递增,若y相等,x递增),每个星星都有一个等级,规定它的等级就是在它左下方的星星的个数。输入所有星星后,依次输出等级为0到n-1的星星的个数。思路因为输入都是已经按y坐标排好序的,所以本题就是统计x前面比它小的星星的个数,符合树状数组最基本的应用。 注意:树状数组下标为0的位置不可用,所以我...原创 2018-09-14 17:44:22 · 320 阅读 · 0 评论 -
HDU - 4704 Sum
题目链接HDU - 4704 Sum题意就是题目里那些个东西求和,认真看一下就会明白了思路S(k)代表将n划分成k份有多少种方法的方法数目,隔板问题,相当于在n个1中插入k-1个隔板,n个1有n-1个空,所以S(k)=C(n-1,k-1),题目要求S(1)+S(2)+…….+S(n),就是求 C(n-1,0)+C(n-1,1)+……+C(n-1,n-1),这就是(1+1)^(...原创 2018-09-17 11:53:06 · 221 阅读 · 0 评论 -
Cheerleaders UVA - 11806
题目连接Cheerleaders UVA - 11806题意输入n,m,k,代表有一个n*m的棋盘,有k个棋子,有多少种摆放方式?要求棋盘第一行,最后一行,第一列,最后一列都必须有棋子。思路从正面不太好入手,所以我们可以用容斥原理从反面考虑,设A1为第一行没有棋子的方法数,A2为第二行没有棋子的方法数,A3为第一列没有棋子的方法数,A4为最后一列没有棋子的方法数。那么最...原创 2018-09-12 21:37:11 · 251 阅读 · 0 评论 -
HDU - 2069 Coin Change
HDU - 2069 Coin Change题意有五种硬币不限数量,面值分别是1,5,10,25,50。问你用这些硬币组成n元有多少种方式,硬币的总数要不超过100个。思路dp,背包,设dp[i][j]表示用j个硬币组成i元的方法数,则 dp[i][j]=dp[i][j]+dp[i-v][j-1],v表示当前的硬币面值。#include<iostream>...原创 2018-09-06 22:33:30 · 425 阅读 · 0 评论 -
House Building HDU - 5538
题目连接House Building HDU - 5538题意本题以风靡全球的游戏MineCraft为背景,其实质是求一个立体不规则物体的表面积,输入一个n*m的矩阵mat[][],mat[i][j]代表建筑第i行第j列的高度,计算出这个矩阵不规则物体的表面积(除底面外)。思路一拿到手并没有太好的思路,因为物体不规则,情况多样,比较复杂,然而因为每个方块都是叠上去的,所以并不会...原创 2018-09-12 16:46:32 · 152 阅读 · 0 评论 -
HDU-1171 Big Event in HDU
HDU-1171 Big Event in HDU 题意有n种设备,输入每种设备的价格和数量,现要将这些设备尽可能平均分成两份,问你两份的价值总和分别是多少,大的在前,小的在后。思路因为设备不能分割,所以其价值就不能分割,所以要想分成尽可能相等的两份,首先要知道这些设备能够组成哪些价值,可以用母函数求解,最后从这些设备的总价值的一半开始遍历,如果当前价值能被组成,输出结果...原创 2018-09-06 19:50:07 · 93 阅读 · 0 评论 -
HDU-1085 Holding Bin-Laden Captive!
题意给出三种钱币(面值分别为1,2,5)的数量,问你最小的不能用这些钱币拼出的钱币值。思路母函数模板题。 !!!值得注意的一点是程序截止的条件,如果输入的三个数都为0程序就截止,一开始以为有一个0就停止,WA了很多次。。。#include<iostream>#include<cstring>using namespace std;const int ...原创 2018-09-05 23:17:14 · 108 阅读 · 0 评论 -
HDU-1398 Square Coins
题意输入一个n,求n的分拆平方数,例如: 10=1+1+1+1+1+1+1+1+1+1 10=4+1+1+1+1+1+1 10=4+4+1+1 10=9+1 因此10有四种组合,所以输入10时输出4。思路母函数裸题,与hdu1028相似,只不过那里是求n的分拆数,这里是分拆平方数,所以只要把i改为i*i即可。#include<iostream>using...原创 2018-09-05 21:43:06 · 96 阅读 · 0 评论 -
HDU-1028 Ignatius and the Princess III
HDU-1028题意输入一个整数n,要求输出n的分拆数。思路一母函数,要求n的分拆数,就相当于有n种面值的钱币各无数张,面值为1~n,问你用这些钱币组成n元的方案数。 设用n种面值的钱币组成k元的方案数为ak,则序列a0,a1,a2…ak…an的生成函数为 g(x)=a0+a1*x+a2*x^2+…+ak*x^k+…+an*x^n+…… 同时 g(x)=(1+x+x^2+x...原创 2018-09-05 20:19:19 · 134 阅读 · 0 评论 -
OpenJ_Bailian - 1088 滑雪
题目链接OpenJ_Bailian - 1088 滑雪思路递归型dp,记忆化搜索。 要找一条最长的上升序列,那么可以用一个数组dp[][],dp[i][j]表示从(i,j)开始的最长上升序列的长度,由于这是在一个二维矩阵里的状态转移,所以不是很容易确定递推的方向,可以选择递归型dp,也就是记忆化搜索。#include<iostream>#include<c...原创 2018-09-08 23:28:13 · 205 阅读 · 0 评论 -
HDU - 4135 Co-prime
题目连接HDU - 4135 Co-prime题意输入a,b,n,要求区间[a,b]中与n互质的数的个数(1<=a<=b<=10^15 ; 1<=n<=10^9)。思路判断两个数是否互质,首先想到辗转相除法,然而这里的a,b相当大,枚举a,b间的每一个数并判断和n是否互质必然超时。 既然判断两个数互质方法单一,那么我们可以从反面考虑,首先...原创 2018-09-11 23:04:52 · 110 阅读 · 0 评论 -
HDU-1850 Being a Good Boy in Spring Festival
HDU-1850题意尼姆游戏,本题不仅需要判断先手是否能赢,如果能赢要输出他第一步取石子的方案数,否则输出0。思路如果该状态是非平衡态,那么先手必胜,否则先手必败。什么是非平衡态呢?只要将所有石子堆的石子数目相异或,结果为0则为平衡态,非0则为非平衡态,这时候先手可以取走其中一堆的部分石子,使其转化为平衡态,那么先手一定能取到最后一个石子。 解决了先手是否必胜的问题还要计算出...原创 2018-09-04 20:33:05 · 109 阅读 · 0 评论 -
poj-3154 Graveyard (四舍五入法)
题目链接poj-3154 Graveyard题意在一个周长为10000的圆上等距分布着n个点,即这n个点是一个正n边形的顶点。现在要另加m个点到圆上,新加的m个点可以任意选择位置(可以与原有的点重合)。然后将这n+m个点中的一些点延圆周移动,最终使n+m个点均匀分布,即在一个正n+m边形的顶点上。输出最小总移动距离。输入两个整数 n, m。 (2≤n≤1000, 1≤m≤1000).输出...原创 2018-10-12 21:41:42 · 351 阅读 · 0 评论