math杂题
cyl纤云弄巧
To Be
展开
-
POJ 2247 (丑数的产生方法)
所谓丑数,就是不能被2,3,5,7以外的其他素数整除的数。1,2,3,4,5,6,7,8,9,10,12,14,15,16,18是最前面的15个丑数。此处主要是怎么打表:#include#include#includeusing namespace std;int main(){ freopen("in.txt","r",stdin); __int原创 2016-08-26 15:48:57 · 778 阅读 · 0 评论 -
D - Mike and distribution
D - Mike and distribution题意: 有两个数列,个数相同,现在选出不超过n/2+1个数列下标,使得在每一个数列中下标的数字之和的二倍大于原数列,输出答案和下标。思路: 题意是经过化简 的,因为题中并没有说要选择多少个下标,只是一个范围,那么最简单的做法当然是选择越多越好。 方法:思考挑选的个数,明显是大于数列个数的一半的。 先对A数列做一次排序,那么从大原创 2017-10-12 20:26:28 · 297 阅读 · 0 评论 -
C. Mike and gcd problem
C. Mike and gcd problem题意: 定义一种beautiful数列,满足gcd(b1,b2,···,bn) > 1. 现在给出一个数列A,有一种操作:对ai操作,使得a[i] = ap[i]-a[i+1],a[i+1] = a[i]+a[i+1] 问最少多少次操作使得题中满足beautiful。思路: 数学题就多思考,有公式的情况下向公式思考。根据操作的方法原创 2017-10-12 12:02:06 · 312 阅读 · 0 评论 -
HDU 5985 概率问题
概率问题题意: 有n种硬币,现在有一个方法可以得出一个或者一种lucky硬币,所有硬币抛下然后去掉背面朝上的,继续抛直到只剩一种硬币或者没有硬币为止。问每一种硬币成为lucky的概率是多少。思路: 若想知道在某一步只剩下第i种硬币的话,需要知道其它硬币已经没有的概率。定义:die[i][j]表示第i种硬币在第j次抛全部被去掉的概率,很容易得出(1−pk)cntdie[i][j] 表示第i原创 2017-09-07 22:06:53 · 554 阅读 · 0 评论 -
ZOJ 3638 (集合组合、容斥定理)
集合组合、容斥定理题意: 有n种水果,每一种的数目不限制。现在要挑选出m个水果,其中有两种限制条件 某种水果不能超过xi个 某种水果至少出现xi个 问有多少组合情况?思路: 先考虑第二种限制条件条件:假如有n种集合,现在要挑选m个出来,如果没有限制的情况下就是C(n+m−1,n−1)C(n+m-1,n-1) ( 算法入门经典10.2 计数与概率基础原创 2017-07-26 08:28:34 · 441 阅读 · 0 评论 -
51Nod 1009 数字1的数量
1009 数字1的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1 的个数。 例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。 Input 输入N(1 <= N <= 10^9) Output原创 2017-05-23 22:34:25 · 503 阅读 · 0 评论 -
POJ 3904 (容斥定理)
题意: 给出n个数,输出能由4个数组成的最小公约数是1的总个数。思路: 很容易想到可以用总的组合数减去最小公约数不为一的数的个数。 但是该怎么求呢? 可以先求出每一个数能够被整除的因子,保存个数于count之中,那么剩下的就是 找出四个数因子不为1的组合个数。 比如:2的因子个数总和为a个,3有b个,6有c个。那么所求就是 ans = C(n,4) - { C原创 2017-04-12 11:36:33 · 635 阅读 · 0 评论 -
POJ 3734 (矩阵快速幂+染色问题)
题意: 有n个方格排成一排,现在有四种颜色,红蓝绿黄,问红色和绿色方格同时为偶 数的排列方式有多少种。 思路: 其实方格的状态可以分为三种,a : 红色和绿色方格都为偶数,b:红色和绿色 方格其中刚好有一种方格是偶数,c红色和绿色方格都是奇数。则有:a(i+1) = a(i)*2 + b(i); b(i+1) = a(i)*2 + b(i)*2 + c(i)*2 ;原创 2017-03-19 11:37:57 · 572 阅读 · 0 评论 -
POJ 3070 (矩阵快速幂 ——斐波那契数列)
题意: 求出斐波那契数列的第n项。思路: 今天才知道斐波那契数列可以用矩阵求出,不过矩阵快速幂还是有很多写的方式 总结了一下,找出了自己比较喜欢的一种方式。#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N=100;int n;int a[N][N];in原创 2017-03-19 11:07:03 · 517 阅读 · 0 评论 -
POJ百练 2765(秦九韶算法,八进制小数)
题意:百练2765猛一看就像是高精度,但是实际小数范围比较小,所以可以用double。#include#includeint main(){ char a[16]; int length,i; double ten; while(scanf("%s",a) != EOF){ length = strlen(a); ten原创 2016-06-23 17:05:11 · 675 阅读 · 0 评论