ACM
文章平均质量分 56
_NMfloat_
但日有寸进,此心甚喜。
展开
-
HDU 5101 Select 二分
题意:给出NN个班级,每个班级有MM个学生,每个学生有个IQ值,问有多少对学生,他们的IQ值加起来>KK。(两名学生不能来自同一个班级)思路:升序排序之后,对于每个学生IQ值,可以二分出序列中≥(K+1−IQ)\ge(K+1-IQ)的值的位置,因为不能来自同一个班级,所以要把同班级中≥(K+1−IQ)\ge(K+1-IQ)的值减掉,这个也是可以二分的。坑点:二分的时候注意leftleft,right原创 2015-12-06 00:57:43 · 486 阅读 · 0 评论 -
HDU 汉诺塔一类问题 1997 2175 2184 2511
这类汉诺塔问题,都是根据汉诺塔的递归结构而来。hanoi(A,B,C,n) {//把A柱上n个盘子通过B柱移向C柱 hanoi(A,C,B,n-1);//首先把A柱上的n-1个盘子通过C柱移动B柱上 A->C; //把A柱剩下的一个盘子从A柱移到C柱 hanoi(B,A,C,n-1);//再把B柱上的n-1个盘子通过A柱移到C柱上}HDU 2175题意:求第mm步移动的是哪原创 2015-12-06 21:34:31 · 1013 阅读 · 0 评论 -
HDU 1443 Joseph 约瑟夫环 暴力
题意:有k个好人在队伍前面,k个坏人在队伍后面。每次去掉一个在第m个位置的人,问使所有坏人都比好人先去掉的最小的m是多少?思路:因为k比较小,直接模拟这个过程。要注意一个情况,每次找第mm个数的要找在现在这种情况的第m0m_0个数。假设已经找到cntcnt个数,则m0=(m−1)%(2∗k−cnt)+1m_0 = (m-1) \%(2 * k - cnt) + 1。mm和m0m_0是等价的,m0m_原创 2015-12-22 13:10:30 · 928 阅读 · 0 评论 -
HDU 1082 Matrix Chain Multiplication 逆波兰式
题意:计算给出的表达式需要多少步?思路:矩阵乘法[n,m]∗[m,k]=[n,k][n,m]*[m,k]=[n,k],需要n∗m∗kn*m*k步。把中缀表达式转成后缀表达式,这个题目的转换有一种讨巧的方法,直接把’)’换成’*’即可,注意需要把这个式子反一下来计算。然后来解这个逆波兰式即可。解逆波兰式的原则,如果碰到的符号,就用这个符号计算栈顶的两个数,然后把结果入栈。如果碰到数字,直接入栈。原创 2015-12-18 21:08:10 · 429 阅读 · 0 评论 -
HDU 1285 确定比赛名次 拓扑排序
思路:就是每次找一个入度为0的点。然后把这个点删掉,并将这个点连着的其他点的入度减1。 http://acm.hdu.edu.cn/showproblem.php?pid=1285/********************************************* Problem : HDU 1258 Author : NMfloat InkTime (c)原创 2015-12-17 16:41:04 · 458 阅读 · 0 评论 -
HDU 1027 Ignatius and the Princess II 全排列
题意:1…n1\ldots n,求第mm个全排列思路:因为,m≤10000m \le 10000,所以只需要求8的全排列,8!=403208!=40320已经大于10000了,其他的n>8n>8全部可以根据n=8n = 8推出来。我取巧用了STL的next_permutation()函数,万能的STL。 http://acm.hdu.edu.cn/showproblem.php?pid=1027原创 2015-12-11 15:54:39 · 344 阅读 · 0 评论 -
Codeforces Round #312 (Div. 2) C Amr and Chemistry
题目的大意是:有N个数,你可以一个数*2或/2向下取整,问至少多少步可以使所有数都相同。这题就是暴力,把每个数二进制表示,从高位向地位枚举,枚举答案达到这一位需要的步数,取最大的即可 http://codeforces.com/contest/558/problem/C代码写的比较丑#include <map>#include <set>#include <queue>#include原创 2015-10-28 19:03:41 · 326 阅读 · 0 评论 -
hdu 1131 Count the Trees Java 大数
结果是卡特兰数乘以阶乘。阶乘很好理解,卡特兰数是因为树只能向左或者向右延生。传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1131import java.io.*; import java.math.*; import java.util.*; public class Main{ public sta原创 2015-08-16 20:31:11 · 512 阅读 · 0 评论 -
hdu 1043 八数码 A*
曼哈顿距离作为估价函数。传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1043#include #include #include #include #include #include #include #include #define maxn 400000using namespace std;struct Nod原创 2015-04-13 21:42:31 · 561 阅读 · 0 评论 -
hdu 1043 八数码 单向广搜
从目标解开始广搜,就是打表,记录所有可以到目标解的路径,在HDU很容易超空间。传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1043#include #include #include #include #include #include using namespace std;int ctarray[10] ={1,1,2,原创 2015-04-13 21:38:20 · 586 阅读 · 0 评论 -
hdu 2444 The Accomodation of Students
1.先判断是否为二分图:一边的标记为1,另一边标记为2,如果两边都是1或者都是2的话,就说明不是二分图,我使用的是直接使用两个for进行循环,即可判断。2.再找二分图的最大匹配。http://acm.hdu.edu.cn/showproblem.php?pid=2444#include #include #include #define maxn 205int vis[max原创 2015-03-24 16:46:27 · 415 阅读 · 0 评论 -
hdu 1211 RSA Java
http://acm.hdu.edu.cn/showproblem.php?pid=1211Java 暴力m^e % n = cm是明文,c是密文,直接枚举127个ASCII码对应c的值,然后一一对应即可。import java.io.*;import java.math.*;import java.util.*;public class Main{ publi原创 2015-03-23 00:19:10 · 638 阅读 · 0 评论 -
hdu 1287 破译密码 水题
水题,先打表,直接暴力http://acm.hdu.edu.cn/showproblem.php?pid=1287#include #include int a[30][30];int temp[10005];bool vis[10005];int main(void){ int i,j,n,k,mark; for(i='A';i<='Z';i++){原创 2015-03-28 00:14:29 · 612 阅读 · 0 评论 -
hdu 1237 简单计算器
用一个pre储存之前运算过的数,用temp存储现在正在运算的数,注意一下细节就好。http://acm.hdu.edu.cn/showproblem.php?pid=1237#include #include #include int a[205];char b[205];int main(void){ //freopen("a.in","r",stdin);原创 2015-03-26 17:16:38 · 492 阅读 · 0 评论 -
ACM学习资源
学习树链剖分的博客 http://blog.csdn.net/u013368721/article/details/39734871原创 2015-09-23 21:53:16 · 605 阅读 · 0 评论