随笔分类 - 数学
            
    bzoj 1005 1211 prufer序列总结
    
            
            
        
摘要:两道题目大意都是根据每个点的度数来构建一棵无根树来确定有多少种构建方法这里构建无根树要用到的是prufer序列的知识先很无耻地抄袭了一段百度百科中的prufer序列的知识:将树转化成Prufer数列的方法一种生成Prufer序列的方法是迭代删点,直到原图仅剩两个点。对于一棵顶点已经经过编号的树T,顶...
        阅读全文
            
        
            
    HDU 5439 Aggregated Counting
    
            
            
        
摘要:题目大意:由1开始不断往数组中添加数就是按照当前所在位置所在的数表示的个数添加这个数目的数1 2 2 3 3 后面因为要填4,而4号位置为3,说明之后要填3个4问题就是给定一个n,找到n出现的最后位置p,再找p出现的最后位置即可这里可以考虑先找到g[i]表示 i 连续出现了多少次这里想一下的话,因为...
        阅读全文
            
        
            
    UVA 10294 等价类计数
    
            
            
        
摘要:题目大意:项链和手镯都是若干珠子穿成的环形首饰,手镯可以旋转和翻转,但项链只能旋转,给n个珠子,t种颜色,求最后能形成的手镯,项链的数量这里根据等价类计数的polya定理求解对于一个置换f,若一种方案经过置换后不改变,那么不改变的点的个数记作C(f)统计所有的C(f) , 相加之后求和除以置换的种数...
        阅读全文
            
        
            
    COJ 1211 大整数开平方
    
            
            
        
摘要:手写求大整数开根号所得到的值,具体计算过程参考别人的资料,最后利用java的大整数得到答案别人博客链接:http://www.cnblogs.com/Rinyo/archive/2012/12/16/2820450.html1.举例上式意为65536的开平方为256。手开方过程类似于除法计算。为了方...
        阅读全文
            
        
            
    SPOJ ARCTAN
    
            
            
        
摘要:POJ1183 除输入方式外与这道题完全一样题目大意是给定一个a求最小的满足arctan(1/A)=arctan(1/B)+arctan(1/C) 的B+C的最小值根据上述递推规律,我们只要从2*a开始往前递增寻找找到第一个满足b,c均为正整数的情况就是最小的#include #define ll ...
        阅读全文
            
        
            
    POJ 2356 && POJ 3370 鸽巢原理
    
            
            
        
摘要:POJ 2356:题目大意:给定n个数,希望在这n个数中找到一些数的和是n的倍数,输出任意一种数的序列,找不到则输出0这里首先要确定这道题的解是必然存在的利用一个 sum[i]保存前 i 个数的和对n的取模sum[0] = 0;那么sum[0] ~ sum[n]有n+1个数据,这些数据的范围都是 0...
        阅读全文
            
        
            
    HDU 4451 容斥原理
    
            
            
        
摘要:题目大意:n件衣服,m条裤子,k双鞋子进行搭配妈妈指明了哪些衣服和裤子不能搭配,哪些裤子和鞋子不能搭配,问最后有几种搭配方法先假设都能搭配 n*m*k每次遇到衣服和裤子不能搭的,就要减一次k,同时记录这个衣服和裤子出现的次数,避免以后重复减去的可以加回来裤子和鞋子也是同样道理 1 #include ...
        阅读全文
            
        
            
    POJ 3270 置换群问题
    
            
            
        
摘要:题目大意是:每头牛都有一个对应的值a[i],现在给定一个初始的牛的序列,希望通过两两交换,能够使这些牛按值升序排列,每次交换都会耗费一个 a[i]+a[j]希望耗费最小,求出这个最小耗费个人觉得这道题还是蛮有意思的,虽然我wa了很多发,但还是很值得思考一下的这是一个置换群问题,但是我们首先要根据其值...
        阅读全文
            
        
            
    POJ 1026 置换群的k次幂问题
    
            
            
        
摘要:题目大意:给定了一组对应关系,经过k次幂后,得到新的对应关系b[i],然后将给定的字符串上的第i位字符放置到b[i]的位置上,如果字符串长度不足n就用空格补足,这里的是空格,也就是str[i] = ' ',不是str[i]='\0' ,自己这里错了好几回就是找不到问题,看了别人代码才明白置换群的k次...
        阅读全文
            
        
            
    hrbust oj 1536 Leonardo's Notebook  置换群问题
    
            
            
        
摘要:题目大意:给出一个A~Z的置换G,问能否找到一个A~Z的置换G' 能够用来表示为 G = G'*G'由定理:任意一个长为 L 的置换的k次幂,都会把自己的每一个循环节分裂成gcd(L, K)份,并且每一份的长度都为L/gcd(L,K)这里是置换的平方,所以G'长度为偶数的循环节必然会分裂为两个相等的...
        阅读全文
            
        
            
    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 1018 阶乘数的位数
    
            
            
        
摘要:题目大意:将一个数开阶乘后得到的值,来求这个值的位数n! = 1*2*3*4...*n对于求一个数的位数的方法为ans = lg(n!) + 1那么就可以看作 ans = lg(1) + lg(2) .......+ lg(n) + 1#include #include const double e...
        阅读全文
            
        
            
    HDU 1220 简单数学题
    
            
            
        
摘要:题目大意是在魔方上找到有多少对小立方块它们之间连接的点不超过两个因为任意两个立方块之间相连的点就只有0,1,2,4 这样4种情况那么我们只需要考虑总共的组成立方块对数sum = C(2 , n*n*n) = (n*n*n*(n*n*n-1))/2 在n*n*n个立方块中任选两个组合然后减去邻接4个点...
        阅读全文
            
        
            
    HDU 1042 大数计算
    
            
            
        
摘要:这道题一开始就采用将一万个解的表打好的话,虽然时间效率比较高,但是内存占用太大,就MLE这里写好大数后,每次输入一个n,然后再老老实实一个个求阶层就好java代码: 1 /** 2 * @(#)Main.java 3 * 4 * 5 * @author 6 * @version 1.00...
        阅读全文
            
        
            
    HDU 1005
    
            
            
        
摘要:这道题类似数学中的找规律不断往前计算f[n],直到出现一组数据(两个相邻的数)和前面的(两个相同的数)相同,那么就形成了循环因为始终mod7,那么每个数字只有0~6 7种可能,两个为一组,最多49种可能,也就是往前计算最坏情况也只要计算49次就好了 1 #include 2 #include 3...
        阅读全文
            
        
            
    POJ 1019 数学题
    
            
            
        
摘要:1 #include 2 #include 3 4 using namespace std; 5 6 int sum[20]; 7 //sum[i]表示尾数为i的组最大可达到的数字个数 8 void init() 9 {10 sum[0] = 0;11 sum[1] = 9...
        阅读全文
            
        
            
    HDU 4473
    
            
            
        
摘要:题目大意:给定一个long long 型的数 n,找到一共有多少对a,b,使比n小的某一个数的是a*b的倍数这样我们可以理解为存在a*b*c #include #include using namespace std;typedef long long LL;LL getPowThird(LL x)...
        阅读全文
            
        
            
    HDU 4465  递推与double的精确性
    
            
            
        
摘要:题目大意不多说了这里用dp[i][0] 代表取完第一个盒子后第二个盒子剩 i 个的概率,对应期望就是dp[i][0] *idp[i][1] 就代表取完第二个盒子后第一个盒子剩 i 个的概率dp[i][0] = p^(n+1) * (1-p)^(n-i) * C(2*n-i , n-i) =p^(n+...
        阅读全文
            
        
            
    HDU 4405 飞行棋上的数学期望
    
            
            
        
摘要:突然发现每次出现有关数学期望的题目都不会做,就只能找些虽然水但自己还是做不出的算数学期望的水题练练手了题目大意:从起点0点开始到达点n,通过每次掷色子前进,可扔出1,2,3,4,5,6这6种情况,扔到几前进几,当然对应飞行通道可以通过x直达一点y,x 2 #include 3 using name...
        阅读全文
            
        
            
    CSU 1290 DP解决数学期望问题
    
            
    
摘要:题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1290题目大意:给定k个数,每次可以生成0-N-1中的任何一个数,k个数中出现不同的整数的个数的数学期望 1 #include 2 #include 3 using namespace ...
        阅读全文
            
        
 
                    
                     
                    
                 
                    
                 
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号