ACM-数学
暗金色
这个作者很懒,什么都没留下…
展开
-
UVA - 10006 公式
题目大意:要求你判断一个数是C N还是N N,C N要满足所给的式子,且CN还不是素数解题思路:先打表,将65000里的素数先找出来,然后在进行二分法求余判断#include#include#include#define maxn 65000#define maxm 65100using namespace std;int prime[maxm];void init原创 2014-12-26 21:04:01 · 689 阅读 · 0 评论 -
UVA - 10110 Light, more light
题目大意:求走了n次后灯是关的还是开的解题思路:用sqrt函数判断原创 2014-09-21 14:06:23 · 665 阅读 · 0 评论 -
UVA - 11027 Palindromic Permutation 排列组合
题目大意:给出一个字符串,将这个字符串的每个字符进行排列组合后,按字典序,输出第N个回文字符串解题思路:要输出第N个字符串,首先要先判断是否能组成回文字符串,判断能否组成回文字符串的条件是,字符串中的每个字符的数量为奇数个的不能大于1。然后进行排列组合,因为是回文字符串,所以两边是对称的,所以只需将左边的字符串求出来,然后按照对称性,就能得到右边的,要求第N个回文字符串,用原创 2015-01-07 11:10:21 · 721 阅读 · 0 评论 -
UVALive - 2222 Garland 公式
题目大意:给出n个灯泡和最左边的灯泡的高度,要求求出最后一个灯泡的高度,使得该灯泡的高度达到最小。中间灯泡的高度由左右两边灯泡高度的和的二分之一减1得到解题思路:由所给的求高度的公式可以得出,每两个灯泡之间的距离差是递减的,每次递减2 假设第一个灯泡和第二个灯泡之间的差为n,那么第二个灯泡和第三个灯泡之间的差就为n-2,这个可以由公式得到 由等差数列求和公式的 s = a1 * n + n *原创 2015-04-22 16:24:24 · 498 阅读 · 0 评论 -
UVA - 568 Just the Facts
题目大意:求n的接车原创 2014-09-21 15:01:30 · 615 阅读 · 0 评论 -
UVA - 128 Software CRC 256进制
题目大意:给你一个字符串,要求你将其转换成数字,这个数字是256进制的,因为这样才能区分出每一位,然后在这个数字的后面添加上两位,使得这个数能被34943整除解题思路:按位除下去,得到最后一个余数,这个余数是倒数第三位的,所以这个数要乘上256*256,得到了这个数了,再做除法运算,得到一个余数,加上这个余数后,这个数就能被34943整除了#include#includechar *n原创 2014-12-25 23:24:59 · 979 阅读 · 0 评论 -
UVA - 10820 Send a Table 欧拉函数
题目大意:给你一个N,要求你求出区间[1,N]内互质的数有几对解题思路:互质的数有几对的话,就要求出每个数有几个数和他是互质的,然后再进行累加,但是这题的话,因为(2,3)和(3,2)都可以算成是一对,所以还要乘上2,那样的话(1,1)就重复了,所以还得减去1#include#include#includeusing namespace std;#define maxn 50010原创 2014-12-30 20:20:39 · 667 阅读 · 0 评论 -
UVA - 350 Pseudo-Random Numbers set的使用
题目大意:给出一个种子L,L = (Z * L + I) % M。找到有重复的L,并求出这两个L的距离解题思路:水题,题目较长#include#include#include#define maxn 10000using namespace std;int main() { int Z, L, I, M; int num[maxn]; int mark = 1; whi原创 2014-12-22 23:47:37 · 569 阅读 · 0 评论 -
UVA - 10375 Choose and divide 化简
题目大意:给出公式,和四个值,要求按公式求值解题思路:数据很大,先化简,但化简后进行乘法后再计算的话,就会爆掉,所以边乘边除,这样就可以避免暴了.#includeint main() { int p, q, r, s; while(scanf("%d%d%d%d",&p,&q,&r,&s) == 4) { double ans = 1.0; if(p - q < q)原创 2015-01-06 18:52:43 · 663 阅读 · 0 评论 -
LightOJ - 1027 A Dangerous Maze 概率
题目大意:迷宫里面有n扇门,每扇门有相应的值,假设第i扇门的值为xi,如果xi > 0,那么xi分钟后,走该扇门就可以走出迷宫了,如果xi < 0,表示走了该扇门之后,需要abs(xi)分钟后才能回到原点,问走出迷宫的期望是多少解题思路:假设有k扇门(正值用x表示,负值用y表示)期望是d的话 那么d = 1 / k * (x1 + x2 + x3 + .. xn) + 1 / k * (abs(y原创 2015-06-08 21:22:33 · 1090 阅读 · 0 评论 -
题目1011:最大连续子序列 O(n)
题目大意:给出一系列的数字,要求你输出这些数字的最大连续和,并输出构成这个最大连续和的第一个数和最后一个数解题思路:用一个变量维护最大连续和 如果当前这个变量小于0的话,就表示这个变量只会拉低连续和的值了,所以将其变为0 如果当前这个变量大于0,无论它多小,最大连续和加上它都只会增大而不会减小,所以不用改变这个变量 如果当前变量是0的话,就要根据题目来更新了#include<cstdio>#原创 2015-06-05 20:28:35 · 1285 阅读 · 0 评论 -
LightOJ - 1317 Throwing Balls into the Baskets 期望
题目大意:有N个人,M个篮框,K个回合,每个回合每个人可以投一颗球,每个人的命中率都是相同的P,问K回合后,投中的球的期望数是多少解题思路:因为每个人的投篮都是一个独立的事件,互不影响,所以每回合投中的球的期望数是相同的 只需求得一回合的期望再乘上K就答案了#include<cstdio>#define maxn 100double ans, p;int n, m, k;int c[20]原创 2015-06-05 15:44:00 · 828 阅读 · 0 评论 -
LightOJ - 1265 Island of Survival 期望
题目大意:有一个生存游戏,里面t只老虎,d只鹿,还有一个人,每天都要有两个生物碰面,现在有以下规则 1.老虎和老虎碰面,两只老虎就会同归于尽 2.老虎和人碰面或者和人碰面,老虎都会吃掉对方 3.人和鹿碰面,人可以选择吃或者不吃该鹿 4.鹿和鹿碰面,相安无视 问人存活下来的概率解题思路:自己想复杂了,用了二维的dp。。。 看了别人的,发现根本不用dp,人生存下来的条件就是不被老虎吃掉,所以原创 2015-06-05 18:38:53 · 1234 阅读 · 1 评论 -
LightOJ - 1030 Discovering Gold 期望
题目大意:在一个1*N的格子里,每个格子都有相应的金币数,走到相应格子的话,就会得到该格子的金币。 现在有一个人在1这个位置,手里有一颗色子,色子摇到几,他就前进几步,但有一种情况例外,如果当前位置+色子数 > N,那么他就会重新摇色子。 走到N这个位置的话,意味着游戏结束了。 问游戏结束时,这个人得到金币的期望。解题思路:这题要倒着推,由N推向1 设dp[k]为到达k这个位置时得到金币的期原创 2015-06-04 15:06:19 · 1610 阅读 · 0 评论 -
LightOJ - 1248 Dice (III) 期望 + dp
题目大意:给出一个n面的色子,问看到每个面的投掷次数期望是多少解题思路:水题啊,竟然被卡了那么久,也是醉了,给题目所给的那个样例误导了。。。不怪那个 怪自己太弱了,还得继续训练啊。。。设dp[i]表示扔到i个不同面的期望,那么 dp[i + 1] = i / n * dp[i + 1] + (n - i) / n * dp[i] + 1 整理得 dp[i + 1] = n / (n - i)原创 2015-06-04 23:22:51 · 1561 阅读 · 0 评论 -
UVA - 10491 Cows and Cars 概率
题目大意:有N个门,其中M个门后面是牛,L个门后面是小汽车。现在要求选择其中一扇门,并看剩下的N-1个门中的K个门后面是什么。当K个门打开后,要求你放弃刚才选择的那扇门,从剩下的N-K-1个门中再选择一扇门进行打开,如果门后面是车的话,就算赢了,问赢的概率有多大解题思路:分两种情况1.刚开始选中的门后面是牛,概率为M/N,然后在剩下的门再选择一扇门,这扇门后面是车的概率是L/N-K-1,所原创 2015-01-08 15:41:44 · 893 阅读 · 0 评论 -
UVA - 138 Street Numbers 公式题
题目大意:要你找到一个start和一个end,满足1+2+...+start-1 = start+1 + start+2 + ... + end,输出十个满足的start和end解题思路:化简上面的俄式子得,start = sqrt((end * end + end) / 2),如果开根号了得到的刚好是整数,就表示这个start和end是满足的#include#include#incl原创 2014-12-25 23:15:54 · 686 阅读 · 0 评论 -
UVA - 10308 Roads in the North 树的最长距离
题目大意:有N个村庄,有的村庄之间有一条通道连接,并规定,从一个村庄到达另一个村庄的通道不会经过另一个村庄,求经过通道,两个村庄之间的最长距离解题思路:从一个村庄到达另一个村庄的通道不会经过另一个村庄,这就说明了,这些通道连接起来的村庄是不会构成环路的,所以这是一棵树,问题就转换成了求树的节点之间的最长距离#include#include#define maxn 20010int v原创 2015-01-06 16:10:37 · 797 阅读 · 0 评论 -
UVA - 408 Uniform Generator 公式
题目大意:给你一个公式seed(x+1) = 【seed(x) + step】 % mod,给你step和mod,问能不能出现一个数字不重复的,长度为mod的环解题思路:括号内的的增长总是以step*n,如果step和mod的最大公约数不是1的话,而是m的话,就表示经过了m次后,(k+step) %mod就会出现重复了,所以只有当最大公约数是1的时候,才会出现数字不重复,长度为mod的环#原创 2014-12-23 16:26:56 · 664 阅读 · 0 评论 -
UVA - 10392 Factoring Large Numbers 分解因子
题目大意:给你一个数,要求你写出他的所有因子解题思路:常规for虚幻会爆,所以将其想象成求素数的方式,因为每个因子都是素数,这样的话,时间就节省了很多了#include#include#includeusing namespace std;int main() { long long N; while(scanf("%lld",&N) != EOF ) { if(N <原创 2014-12-22 23:51:08 · 552 阅读 · 0 评论 -
UVA - 550 Multiplying by Rotation 公式题
题目大意:给你一个k进制的数,原数的最后一个数时m,用原数乘上n,要求找到一个将原数的最后一个数放到第一个,其他的数向后移动一位的最短的原数是多少解题思路:设s 为原来的数,公式为,s = n * (s % k ) + s / k,以样例为例,原数时xxxxx7 * 4 = 7xxxxx,先将4*7,得到28,余上K,这一位就是变换后的数,即8,这样就变成了xxxxxx7 * 4 = 7xxx原创 2014-12-22 22:13:06 · 730 阅读 · 0 评论 -
UVA - 10879 Code Refactoring
题目大意:把一个数分解成4个不同的数的相乘原创 2014-09-21 19:08:07 · 740 阅读 · 0 评论 -
UVA - 10056 What is the Probability ? 概率UVA - 10056 What is the Probability ?
题目大意:有N个人玩掷色子游戏,只要抛到某一特定的面就算赢了,而抛到这个面的概率是P,求第M个人赢的概率解题思路:第M个人赢的概率是:在第一轮赢了:K1在第二轮赢了:K2#include#include#includeusing namespace std;int main() { int test, N, M ; double p; scanf("%d",&test)原创 2015-01-07 11:54:16 · 747 阅读 · 0 评论 -
UVA - 11121 Base -2 进制数
题目大意:给你一个数N,要求你求出这个数的-2进制表达数解题思路:仿照二进制的求法来求,那就是不断的%(-2),和/(-2),但是%(-2)的话,会出现-1的情况,这时候就把除得的商+1,就可以了具体详解请看点击打开链接#include#includeint main() { int test , N, mark = 1; int ans[100]; scanf("%d",原创 2014-12-30 20:22:50 · 685 阅读 · 0 评论 -
UVA - 106 Fermat vs. Pythagoras 勾股数
题目大意:给出一个边界N,要求你求出这个边界N内满足x^2 + y^2 = z ^2的所有x,y,z有几对,且x,y,z两两互质,然后再求出这个边界N内的除了勾股数以外的所有数还有多少个解题思路:公式a = j *j - i*i, b = 2*i*j, c = i*i + j*j,这样得到的a,b,c就是一组勾股数了,但是枚举所有的i,j话,并不能求出所有的勾股数,而勾股数,除了两两互质的情况原创 2014-12-25 23:26:18 · 718 阅读 · 0 评论 -
UVA - 10791 Minimum Sum LCM 分解质因子
题目大意:给你一个数,这个数能由至少两个数经过LCM得到,求这个数能经过LCM得到该数的最小和解题思路:要求最小和的话,就要进行分解.将所有的质因子求出,然后再让所有相同的质因子相乘,将所得到的数相加,这就是这个数的LCM的最小和,为什么可以这么做,下面进行解释:求出所有的质因子,再让其相同的相乘后,这些数的最大公约数就会等于1了,这样的话,LCM条件就成立了,如果不是所有的质数质因子相乘的话原创 2014-12-30 20:41:23 · 785 阅读 · 0 评论 -
UVA - 10105 Polynomial Coefficients 二项式定理和杨辉三角
题目大意:给出一个(x1 + x2 + x3 + ... + xK)^n式子,要你求出这个式子进行展开后其中一项(x1)^n1(x2)^n2 ... (xk)^nk的系数是多少解题思路:如果换成(a+b)^n的这种类型的,求其中一项的系数是多少就很简单了,可以用二项式定理解决,而杨辉三角的每行记录的刚好是展开后的每个系数。但因为里面有很多个,所以不能用二项式定理,那就想办法用二项式定理。原创 2015-01-06 17:48:43 · 937 阅读 · 0 评论 -
UVA - 11029 Leading and Trailing 快速幂和fmod
题目大意:给出k和n,要求你求出k^n的前三位和后三位解题思路:后三位的话,比较简单,用快速幂就可以求出来了,主要是前三位比较复杂,给出的k和n都很大,用字符串求的话肯定是暴的,这时换种思路,既然数字那么大,能不能将数字变小些,弄得比较好处理些,二分?就是这个思路了,二分是log2n,可以用log将数字变小,因为log的性质,x^m = n, 那么m = logx(n),而且log还有另一个性原创 2015-01-05 20:25:23 · 729 阅读 · 0 评论 -
UVA - 11081 Strings 三个三维DP
题目大意:给出三个字符串,要求你用前两个字符串拼成第三个字符串,拼的规则是可以截取两个字符串的任意子串,然后再进行组装,问有多少种拼法解题思路:参考了别人的思路,设置三个数组dp,dp1,dp2,这三个数组都是三维的。dp[i][j][k]表示用第一串的前i个和第二串的前j个拼成了长度为k的字符串有多少种方法dp1[i][j][k]表示用第一串的前i个和第二串的前j个拼成了长度为k的字原创 2015-01-07 21:18:46 · 686 阅读 · 0 评论 -
UVA - 557 Burger 排列组合 概率
你题目大意:有N个孩子去吃汉堡,他们点了N个汉堡,N个汉堡中,其中N/2个是鸡腿堡,另外N/2个是牛肉堡。这N个孩子坐成了一个圈,然后抛硬币决定哪个孩子该得到哪种汉堡,每个孩子只能得一个汉堡,顺时针轮流抛硬币,正面就拿鸡腿堡,反面就拿牛肉堡,问最后两个孩子的汉堡是相同的概率解题思路:如果直接枚举的话会很麻烦,因为有可能前面几个孩子就把其中一种汉堡全部取走了,剩下的孩子就没得选择了,只能拿另一种原创 2015-01-13 14:37:48 · 1078 阅读 · 0 评论 -
UVA - 575 Skew Binary
原文大意:根据所给的数字求出他改变后的状态并输出解体思路:有原创 2014-09-19 19:31:57 · 664 阅读 · 0 评论 -
LightOJ - 1079 Just another Robbery 概率 + dp
题目大意:harry要去抢劫银行,他手上有每个银行布局,所以他很清楚的了解到每个银行有多少钱,和去抢劫该银行被捕的概率 现在他要拟定一个计划,要求在被捕概率低于p的情况下,抢劫到最多的钱解题思路:银行1个1个的抢过去,抢到的钱随着抢劫银行的数量增加或者不变(不变的情况就是不抢劫该银行),被捕的概率随着银行数量的增加而增大或者不变(不变的情况就是不抢劫该银行) 所以这个题有三个量在改变,一个是银行原创 2015-06-04 16:46:44 · 1621 阅读 · 0 评论 -
LightOJ - 1038 Race to 1 Again 递推+期望
题目大意:给出一个数,要求你按一定的规则将这个数变成1 规则如下,假设该数为D,要求你在[1,D]之间选出D的因子,用D除上这个因子,然后继续按该规则运算,直到该数变成1 问变成1的期望步数是多少解题思路:递推,设该数为D,有N个因子,分别是1,n1,n2,n3…nn-2,D, 那么选到每个因子的概率都是1/N,除非选到D,不然选到其他因子的话都要多1步,然后再计算D除以该因子的期望 这就能原创 2015-06-04 14:46:48 · 849 阅读 · 1 评论 -
LightOJ - 1132 Summing up Powers 矩阵快速幂
题目大意:求(1^K + 2^K + 3K + … + N^K) % 2^32解题思路: 借用别人的图 可以先打表,求出Cnm,用杨辉三角可以快速得到#include<cstdio>typedef unsigned long long ll;const int N = 55;const ll mod = (1LL << 32);struct Matrix{ ll mat[原创 2015-06-02 14:03:01 · 1308 阅读 · 1 评论 -
UVA - 573 The Snail
题目大意:求一只蜗牛在第几天怕国强原创 2014-10-08 00:31:46 · 595 阅读 · 0 评论 -
UVA - 10970 Big Chocolate
题目大意:求将M*N的巧克力分解成M * N 块,要切寄到原创 2014-10-07 23:44:59 · 624 阅读 · 0 评论 -
UVA - 10916 Factstone Benchmark
题目大意:求计算计算机的积原创 2014-10-07 13:01:09 · 648 阅读 · 0 评论 -
UVA - 11044 Searching for Nessy
题目大意:求在一个n行m列的方格内需要放几个声纳解题思路原创 2014-10-07 10:46:51 · 645 阅读 · 0 评论 -
UVA - 10790 How Many Points of Intersection?
题目大意:求上面的点和下面的点的连线的交点有多少个纯属学原创 2014-10-06 15:54:48 · 625 阅读 · 0 评论 -
UVA - 10499 The Land of Justice
题目大意:求一个球被从球心分成N份后,表明原创 2014-10-06 15:15:05 · 704 阅读 · 0 评论