随笔分类 - ACM-HDU
            
    HDU 4803 贪心
    
            
            
        
摘要:尽可能的让当前的平均值接近最后的平均值才能最快达到终点的情况 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int main() 7 { 8 // freopen("a.in" , "r" , stdin); 9...
        阅读全文
            
        
            
    HDU 2815 扩展baby step giant step 算法
    
            
            
        
摘要:题目大意就是求 a^x = b(mod c) 中的x用一般的baby step giant step 算法会超时这里参考的是http://hi.baidu.com/aekdycoin/item/236937318413c680c2cf29d4map平衡树查找值 1 #include 2 #incl...
        阅读全文
            
        
            
    HDU 3537 Mock Turtles型翻硬币游戏
    
            
            
        
摘要:题目大意:每次可以翻1个或者2个或者3个硬币,但要保证最右边的那个硬币是正面的,直到不能操作为输,这题目还有说因为主人公感情混乱可能描述不清会有重复的硬币说出,所以要去重这是一个Mock Turtles型翻硬币游戏下面是对这个类型游戏的讲解约束条件6:每次可以翻动一个、二个或三个硬币。(Mock T...
        阅读全文
            
        
            
    HDU 3389 阶梯博弈
    
            
            
        
摘要:题目大意:盒子的序号为1~n,每次从序号A>B的盒子,且(A+B)%2=1,(A+B)%3=0,从A中取任意个物品放入B中,知道不能操作很容易能看出的是只能是(A+B)%6==3的时候成立也就是 i % 6 =0 与 i % 6 = 3i % 6 = 1 与 i % 6 = 2i % 6 = 4 与...
        阅读全文
            
        
            
    HDU3032 nim博弈
    
            
            
        
摘要:题目大意:可以从某一堆中取任意个数,也可把一堆分成两个不为0的堆,直到某一方无法操作为输因为是nim博弈,所以只要考虑一堆时候的sg值,把所有堆的sg值异或即可很显然这里 0 是一个终止态 sg[0]=0;sg[1]=1 ;2 的时候可分为 0 , 1 , (1,1) 3种情况,sg值分别为 0,1...
        阅读全文
            
        
            
    HDU 2897 经典巴什博弈
    
            
            
        
摘要:从n个石子中每次取p~q个,求先手能否获胜可以先列举一部分数据,然后观察可得总是在p+q中循环,所以只要用n对p+q取模就好了#include #include #include using namespace std;int p,q;int main(){ // freopen("a.in" ...
        阅读全文
            
        
            
    HDU 2516 斐波那契博弈
    
            
            
        
摘要:可以先列举一部分小数据,可以发现以fib[0]=2,fib[1]=3开始的斐波那契数列中的数字表示必胜态#include #include #include using namespace std;#define ll long longconst ll INF = 0x7fffffff;int k...
        阅读全文
            
        
            
    HDU 2147 找规律博弈
    
            
            
        
摘要:题目大意:从右上角出发一直到左下角,每次左移,下移或者左下移,到达左下角的人获胜到达左下角为必胜态,那么到达它的所有点都为必败态,每个点的局势都跟左,下,左下三个点有关开始写了一个把所有情况都计算的打表for(int i=n ; i>=1 ; i--){ for(int j=1 ; j 2 #inc...
        阅读全文
            
        
            
    HDU 1564 找规律博弈
    
            
            
        
摘要:题目大意是:从n*n的方格角落的一个起点出发,每次移到上下左右一个未曾到达过的位置,谁不能走了谁就输了想了好久都想不出,看了大神的题解 Orz了果然博弈不是脑残的游戏啊...这里从起点出发,将所有方格两两连接,如果为偶数,那么这个起点会有一个对应方格与其两两连接,那么起点说明已经占据了一格那么每次先...
        阅读全文
            
        
            
    HDU 1079 简单博弈
    
            
            
        
摘要:判断下一步能否到达必胜态,如果可以当前状态就是必败态,否则当前状态记为必胜态 1 #include 2 #include 3 #include 4 using namespace std; 5 bool p[115][13][40]; 6 int month[13] = {0 , 31 , 2...
        阅读全文
            
        
            
    HDU 4451 容斥原理
    
            
            
        
摘要:题目大意:n件衣服,m条裤子,k双鞋子进行搭配妈妈指明了哪些衣服和裤子不能搭配,哪些裤子和鞋子不能搭配,问最后有几种搭配方法先假设都能搭配 n*m*k每次遇到衣服和裤子不能搭的,就要减一次k,同时记录这个衣服和裤子出现的次数,避免以后重复减去的可以加回来裤子和鞋子也是同样道理 1 #include ...
        阅读全文
            
        
            
    HDU 2082 母函数法
    
            
            
        
摘要:1 #include 2 #include 3 4 using namespace std; 5 6 int cnt[30] , dp[30][100]; 7 8 int main() 9 {10 // freopen("a.in" , "r" , stdin);11 in...
        阅读全文
            
        
            
    HDU 2242 连通分量缩点+树形dp
    
            
            
        
摘要:题目大意是:所有点在一个连通图上,希望去掉一条边得到两个连通图,且两个图上所有点的权值的差最小,如果没有割边,则输出impossible这道题需要先利用tarjan算法将在同一连通分量中的点缩成一个点后,重新构建一幅图,然后利用新建的图进行树形dp解决问题这道题目需要注意的是可能存在重边,那么子节点...
        阅读全文
            
        
            
    HDU 1561 树形DP背包问题
    
            
            
        
摘要:这是自己第一道背包上树形结构问题,不是很理解这个概念的可以先看看背包九讲自己第一次做,看了一下别人的思路,结合着对简单背包问题的求解方式自己一次AC了还是有点小激动的题目大意是:攻克m个城市,每个城市都有对应数量的宝贝,攻克某一个城市必须保证其对应的某一个特定城市已经被攻克,希望得到最多数量的宝贝很...
        阅读全文
            
        
            
    HDU 1573 解同余模线性方程组
    
            
            
        
摘要:题目意思很直接就是一道裸的解线性同余模方程组的题目 1 #include 2 #include 3 4 using namespace std; 5 6 #define N 15 7 int r[N] , m[N]; 8 9 int ex_gcd(int a , int &x , int ...
        阅读全文
            
        
            
    HDU 2196 Computer 树形DP
    
            
            
        
摘要:题目大意:每台新电脑都与某一台原电脑相连有一个长度,求每台电脑相距其最远的电脑的距离这里因为第一台电脑是最初的,所以可以将第一台电脑作为树根,其他电脑分布就可以形成一棵树这里距离有两种,一种是往树底找,一种是往父节点方向走第一次dfs记录下每个节点往子节点方向找到其树底的最长距离,第二次dfs记录每...
        阅读全文
            
        
            
    HDU 1520 Anniversary party  树形DP
    
            
            
        
摘要:题目大意:员工参加周年晚会,如果没有遇到直接上司,那么员工会有一个开心值,我们要尽可能让员工的开心值最大最开始输入n ,然后是1~n号员工对应的开心值然后不断输入员工间的领导关系,L,K表示K是L的上司,直到输出0,0结束这是第一次接触树形dp的题目,貌似也是最为推荐的题目,DP的思路是从别的大神地...
        阅读全文
            
        
            
    HDU 1068 Girls and Boys
    
            
            
        
摘要:题目大意:有一些男女生之间的暧昧关系,求找到一组人数最多的,组中任何两人都没有暧昧关系的情况‘直接建图,求一个最大独立集二分图中最大独立集 = 总数 - 最大匹配数 1 #include 2 #include 3 4 using namespace std; 5 const int N = 1...
        阅读全文
            
        
            
    HDU1507 Uncle Tom's Inherited Land*
    
            
            
        
摘要:题目是跟 zoj1516是一样的,但多了匹配后的输出详解zoj1516可见http://www.cnblogs.com/CSU3901130321/p/4228057.html 1 #include 2 #include 3 #include 4 using namespace std; 5 ...
        阅读全文
            
        
            
    HDU 1249 三角形的分割
    
            
    
摘要:可以将三角形的三条边一条一条加进图形中观察假设添加第n个三角形前n-1个三角形将区域划分为sum[n-1]第n个三角形每条边最多能经过前n-1个三角形每条三角形的两条边 , 一条边切完增加了 2*(n-1)-1个区域那么三条边切完内部图形增加了6*(n-1)-3个区域,而新三角形本身在三个顶角形成了...
        阅读全文
            
        
 
                    
                     
                    
                 
                    
                 
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号