题意:给你N个数,求把他们的全排列加和为多少 思路:对于这道题,假设数字k1在第一位,然后求出剩下N-1位的排列数num1,我们就可以知道k1在第一位时 排列有多少种为kind1, 同理,假设数字k2在第一位然后求出剩下N-1位的排列数num2, 我们就可以知道k2在第一位时的排列有多少种为kind2, k1*num1+k1*num2.....+kn*numn 就是我们要求的这些数对第一位的所有贡献, 我们知道第一位的贡献=对第二位的贡献=第三位的贡献..... 把所有贡献加和,就能求出结果 知…
A pair of numbers has a unique LCM but a single number can be the LCM of more than one possiblepairs. For example 12 is the LCM of (1, 12), (2, 12), (3,4) etc. For a given positive integer N, thenumber of different integer pairs with LCM is equal to N…
Add AgainInput: Standard Input Output: Standard Output Summation of sequence of integers is always a common problem in Computer Science. Rather than computing blindly, some intelligent techniques make the task simpler. Here you have to find the summa…
题目链接 脑子抽了,看错题了,神奇的看成没有0了.主要问题把n个数插入m个相同的数,把m个数给分成1-m堆,然后插到n+1空里. #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <ctime> #include <cstdlib> #include <iostream> using namespace std;…
题目链接:UVA-33478 题意为给定n个数,求这n个数能组成的所有不同的排列组成的数字的和. 思路:发现对于任意一个数字,其在每一位出现的次数是相同的.换言之,所有数字的每一位相加的和是相同的. 所以我们只需求出这个“和”即可. 考虑任意一位i,假设我们在i位放置x,则对应\( (n-1)! / ( d_0! * d_1! * ... * d_x! * ... * d_9! ) \)种情况. 所以我们要求的“和”等于\(\sum_x x * (n-1)! / ( d_0! * d_1! *…
这道题目的意思简单易懂说的是给你n个数(可能有重复相同的数字),列出他们所有排列的情况,再逐位相加,求出和,例如:给你1,2,3,则排列的情况为<123>, <132>, <213>, <231>, <312>, <321> ,则相加的和为1332.思路很好把握,但是需要比较扎实的数学基础,因为该问题的核心公式需要理解和记忆否则很难做出来. 这道题目的核心知识点是:多重集合排列(也叫不全相异元素全排列),这里有一个定理:设S是一个多重…
n个可重复的元素的排列一共有 = All种,其中 假设这些数依次为ai,每种数字有mi个. 从右往左考虑第d位数(d≥0),第i个数字出现的次数为,那么这个数字对所求答案的贡献为 其实可以先一次求出个位上每种数字对答案的贡献,然后乘上 #include <cstdio> #include <algorithm> using namespace std; typedef long long LL; ; LL fac[maxn + ], pow10[maxn + ]; ], b[max…
题意: 输入n个数字,求这些数字 所有全排列的和 (1<= n <= 12) 对于任意一个数字,其在每一位出现的次数是相同的    即所有数字的每一位相加的和是相同的. 因此可以等效为它们的平均数出现的次数,而出现的次数就是重复排列的组合数,最后再乘以n个1即可得到答案.比如一个序列是{1,1,2},那么平均数就是(1+1+2)/3=4/3.出现的次数就是P(3,3)/P(2,2)=3,一共有3个1,那么ans=(4/3)*3*111=444. 整合自:http://www.cnblogs.c…
Yup!! The problem name reects your task; just add a set of numbers. But you may feel yourselvescondescended, to write a C/C++ program just to add a set of numbers. Such a problem will simplyquestion your erudition. So, lets add some avor of ingenuity…
题目链接: 题目 Add All Time Limit:3000MS Memory Limit:0KB 问题描述 Yup!! The problem name reflects your task; just add a set of numbers. But you may feel yourselves condescended, to write a C/C++ program just to add a set of numbers. Such a problem will simply…
UVA 10627 - Infinite Race option=com_onlinejudge&Itemid=8&page=show_problem&category=516&problem=1568&mosmsg=Submission+received+with+ID+13837674" target="_blank" style="">题目链接 题意:一段跑道,A,B分别在两端,速度为u.v,两个人跑到还…
option=com_onlinejudge&Itemid=8&category=516&page=show_problem&problem=1496" style="">题目链接:uva 10555 - Dead Fraction 题目大意:给出一个小数,从...開始能够是不论什么数字,可是保证是无限循环小数.将该小数用分式的形式表示,而且要求分母尽量大. 解题思路:这题主要是怎么将无限循环小数转换成分式,这种: 有小数0.abcdEE…
题目连接:uva 10560 - Minimum Weight 题目大意:给出n,问说至少须要多少个不同重量的砝码才干称量1~n德重量,给出所选的砝码重量,而且给出k,表示有k个重量须要用上述所选的砝码測量. 解题思路:重量为1的砝码肯定要选,它能够表示到1的重量,那么下一个砝码的重量肯定选择3(2∗1+1),这样1,3分别能够用一个砝码表示,而2,4分别为3-1和3+1,这样1~4的重量也都能够表示.于是有公式ai=si−1∗2+1. #include <cstdio> #include &…
UVA 11754 - Code Feat 题目链接 题意:给定一个c个x, y1,y2,y3..yk形式,前s小的答案满足s % x在集合y1, y2, y3 ... yk中 思路:LRJ大白例题,分两种情况讨论 1.全部x之积较小时候,暴力枚举每一个集合选哪个y.然后中国剩余定理求解 2.全部x之积较大时候,选定一个k/x尽可能小的序列,枚举x * t + y (t = 1, 2, 3...)去暴力求解. 代码: #include <stdio.h> #include <string…
UVA 718 - Skyscraper Floors 题目链接 题意:在一个f层高的楼上,有e个电梯,每一个电梯有x,y表示y + k * x层都能够到,如今要问从a层是否能到达b层(中间怎么换乘电梯不限制) 思路:对于两个电梯间能不能换乘,仅仅要满足y[i] + xx x[i] == y[j] + yy y[j].然后移项一下,就能够用拓展欧几里得求解,进而求出x,y的通解,然后利用通解范围x' >= 0, y' >= 0, x[i] x' + y[i] <= f, x[j] y'…
题目链接:uva 10692 - Huge Mods 题目大意:给出一个数的次方形式,就它模掉M的值. 解题思路:依据剩余系的性质,最后一定是行成周期的,所以就有ab=abmod(phi[M])+phi[M](phi[M]为M的欧拉函数),这样就能够依据递归去求解. #include <cstdio> #include <cstring> #include <cmath> const int maxn = 15; int A[maxn], k; int pow_mod…
UVA 12009 - Avaricious Maryanna 题目链接 题意:给定一个n.求出n个数位组成的数字x,x^2的前面|x|位为x 思路:自己先暴力打了前几组数据,发现除了1中有0和1以外,其它数据都是由前一项往上再加入一位得到的,因此设新数字为(a∗10k+x)2=(a∗10k)2+x2+2∗a∗10k∗x 因此(a∗10k+x)=((a∗10k)2+x2+2∗a∗10k∗x)/10k%10 化简后得到x2/10k%10+2∗a∗x%10 因此仅仅要能求出x2/10k%10.然后再…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u011328934/article/details/36409469 option=com_onlinejudge&Itemid=8&page=show_problem&category=474&problem=2828&mosmsg=Submission+received+with+ID+13820744" rel="nofollow"…
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4139 题意: 有一个n行m列(1≤n,m≤300)的点阵,问:一共有多少条非水平非竖直的直线至少穿过其中两个点? 分析: 不难发现两个方向是对称的,所以只统计“\”型的,然后乘以2.方法是枚举直线的包围盒大小a*b,然后计算出包围盒可以放的位置.首先,当gcd(a,b)>1时…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u011328934/article/details/36644069 option=com_onlinejudge&Itemid=8&page=show_problem&category=474&problem=2046&mosmsg=Submission+received+with+ID+13825652" rel="nofollow"…
转载自 http://blog.csdn.net/synapse7/article/details/12873437 这道题我自己做的时候没有想到好的优化方法,提交的时候借鉴这篇文章的内容,转载如下: -----------------------------------------------------------------------------------------------------------------------------------------------------…
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. For example: Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it. 这道题是求一个数的数根. 数根有一个同余性质:一个数与它的数根对(b-1)…
UVA 10951 - Polynomial GCD 题目链接 题意:给定两个多项式,求多项式的gcd,要求首项次数为1,多项式中的运算都%n,而且n为素数. 思路:和gcd基本一样,仅仅只是传入的是两个多项式,因为有%n这个条件.所以计算过程能够用乘法逆去计算除法模,然后最后输出的时候每项除掉首项的次数就是答案了. 代码: #include <stdio.h> #include <string.h> #include <vector> using namespace…
UVA 10555 - Dead Fraction 题目链接 题意:给定一个循环小数,不确定循环节,求出该小数用分数表示,而且分母最小的情况 思路:推个小公式 一个小数0.aaaaabbb... 表示为n/m形式,而且a为整数部分有c位, b为小数部分有d位 那么aaaaa.bbb...和aaaaabbb....分别能够表示为10c∗(n/m)和10c+d∗(n/m) 两式相减得:aaaaabbb−aaaaa=(10c+d−10c)(n/m) 那么设n1 = aaaaabbb ,n2 = aaa…
题意  求把全部数加起来的最小代价  a+b的代价为(a+b) 越先运算的数  要被加的次数越多  所以每次相加的两个数都应该是剩下序列中最小的数  然后结果要放到序列中  也就是优先队列了 #include<cstdio> #include<queue> using namespace std; priority_queue<int, vector<int>, greater<int> >q; typedef long long ll; ll…
UVA 1415 - Gauss Prime 题目链接 题意:给定a + bi,推断是否是高斯素数,i = sqrt(-2). 思路:普通的高斯素数i = sqrt(-1),推断方法为: 1.假设a或b为0.推断还有一个数为4 * n + 3形式的素数(用到费马平方和定理) 2.假设a.b都不为0,推断a ^ 2 + b ^ 2 是否为素数 那么这题,提取出sqrt(2)来,就和基本情况一样了. 对于2,变成: 假设a.b都不为0,推断a ^ 2 + 2 b ^ 2是否为素数 对于1.事实上仅仅…
UVA 294 - Divisors 题目链接 题意:求一个区间内,因子最多的数字. 思路:因为区间保证最多1W个数字,因子能够遍历区间.然后利用事先筛出的素数求出质因子,之后因子个数为全部(质因子的个数+1)的积 代码: #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; const int N = 35005; int prime[N], pn = 0, v…
Uva 11728 - Alternate Task 题目链接 题意:给定一个因子和.求出相应是哪个数字 思路:数字不可能大于因子和,对于每一个数字去算出因子和,然后记录下来就可以 代码: #include <stdio.h> #include <string.h> const int N = 1005; int n, ans[N]; void init() { memset(ans, -1, sizeof(ans)); for (int i = 1; i <= 1000;…
LINK:成绩比较 大体思路不再赘述 这里只说几个我犯错的地方. 拉格朗日插值的时候 明明是n次多项式 我只带了n个值进去 导致一直GG. 拉格朗日插值的时候 由于是从1开始的 所以分母是\((i-1)!(n-1)\) 但是一直写成i! 心态炸裂. 还有就是 明明是分母 要求逆啊 直接乘 然后人没了. 最后是 关于答案的统计 由于被碾压的同学 每一科分数永远小于B神 所以 可以不考虑顺序的 将成绩分配给他们. 而 没有被碾压的同学 不可以直接分配 对于每一种方案来说 他们都是可以选择自由分配的…
题意:长度为n的序列,前m位恰好k位正确排序,求方法数 前m位选k个数正确排,为cm[m][k],剩余m - k个空位,要错排,这m - k个数可能是前m个数中剩下的,也可能来自后面的n - m个数 考虑这样一个问题,共n个数,前i位错排的方法数,显然dp[i][0] = i! 递推考虑:处理到第i个数时,等价于前i - 1个数错排的方法数减去在前i - 1个数错排的情况下第i位恰好为i的方法数,后者相当于n - 1个数前i - 1位错排 所以 dp[n][i] = dp[n][i - 1] -…