数学
a892573486
这个作者很懒,什么都没留下…
展开
-
蓝桥杯-填字母游戏
/*蓝桥杯填字母游戏80分代码很明显一道无偏博弈论问题,这种问题要么暴力要么找规律呗规律还是很好找的(虽然我应该就找到了一部分),找不出现平局的情况即可只要出现这种情况就一定能分出胜负(其实样例已经给你了)那就是L**L先填这两个*之一的人输(至于为啥自己想吧)然后能成为L**L的情况还有两种那就是***L和L***因为都要往必胜去肯定都会填入L找到这种必胜情况了再看还有多少个位置给你填先填L**L的人输不过代码是80分的,想必是还有一种必胜情况或者是能转换成必胜的情况没找到吧,原创 2020-10-13 16:35:58 · 344 阅读 · 0 评论 -
hdu 4611(数学、求和、gcd)
/* hdu 4611 题目简化后的意思就是给你n、a、b 求∑(i%a-i%b),i从1到n 直接求肯定不行 i%a-i%b肯定是有循环节的 那就是lcm(a,b) 所以当lcm(a,b)>n时 就直接求∑(i%a-i%b),i从1到n 当lcm(a,b) 就求∑(i%a-i%b),i从1原创 2018-01-22 16:33:52 · 238 阅读 · 0 评论 -
HDU - 4815(概率dp)
/* HDU - 4815 题意为 n道题,老虎不低于P的概率下不会输 求使老虎不会输于猴子的概率大于等于p的分数是多少 转化下就是 猴子得分小于等于k的概率大于p 则老虎赢得的概率大于p的保险分数为k 用概率dp dp[i][j]表示猴子前i道题得分为j的概率 最后求和s原创 2018-01-22 16:39:41 · 318 阅读 · 0 评论 -
HDU - 4814(数学、进制转换)
/* HDU - 4814 题意大体是 给你一个数要你转换成phi进制,且不能出现11的情况 解题思路就是 建立一个数组a[i]=j i表示phi的i次方,j表示这一项的系数 一开始把整个数n可以看成 n*phi^0存入到数组中 再 通过给的两个公式 2*phi^i=phi^(i+1)+phi^(i-原创 2018-01-22 16:43:09 · 279 阅读 · 0 评论 -
HDU - 4430(二分)
/* HDU - 4430 题目大意就是 给你n个蜡烛 要你围城r个同心圆,每个圆上的蜡烛数是k^i 在圆的中心可以放1个蜡烛也可以不放 问当r*k最小时,r和k分别是多少 解题思路: 我们可以枚举r然后找到符合条件的k 计算r*k找到最小的哪一组 当r最大,则k要最小即k==2原创 2018-01-23 14:48:54 · 234 阅读 · 0 评论 -
Gym 100971F(三分)
/* Gym 100971F 题目大意是 给定两个点及其运动速度 问什么时候离的最近 我们先设t然后可以得到 xx1=x1+t*vx1; yy1=y1+t*vy1; xx2=x2+t*vx2; yy2=y2+t*vy2; 两个点的坐标 然后表示长度 len=sqrt((x原创 2018-01-23 14:49:35 · 261 阅读 · 0 评论 -
HDU - 6050(推公式、矩阵快速幂)
/* HDU - 6050 题目大意就是 要你用给你三个关系式然后给你n,m要你求F(m,1) 看题解后F(1,n)=F(1,n-1)+2*F(1,n-2)可以用特征根方程求得F(1,n)的通项公式 所谓特征根方程简单点就是 下标为n的x的次数就是0,+1就是一次方,-1就是-1次方以此类推 所以这题的特征根方程为:x^原创 2018-01-23 14:50:07 · 315 阅读 · 0 评论 -
hdu 4810(二进制找规律,矩阵快速幂)
/* hdu 4810 题意就是给你一个数n,再给你n个数 然后依次求 1个数的异或和 2个数的异或和 一直到n个数 看了题解后发现可以利用 异或的这个性质 奇数个1就是1 偶数个1就是0 所以我们可以把每一位拆开 来看是否有值 最后再求和原创 2018-01-23 14:50:49 · 309 阅读 · 0 评论 -
51 nod 1632(求期望)
/* 51 nod 1632 中文题 唯一要注意的是 它要求的是剩下的联通块的期望 期望公式: E(x)=∑Xi*Pi X为随机变量P为概率 所以这题我们要求的结果是 (C(n-1,0)*1/2^(n-1)+C(n-1,1)*2/2^(n-1)+C(n-1,3)*4/2^(n-1)+…………+C(n-1,n-原创 2018-01-23 14:54:57 · 217 阅读 · 0 评论 -
hdu 4565(推公式、矩阵快速幂)
/* hdu 4565 题目大意 给定a,b,n,m 求s=┌(a+sqrt(b))^n┐%m 因为题目给出b的范围是(a-1)^2 所以(a-sqrt(b))^n 设: (a+sqrt(b))^n=x*a+y*sqrt(b); (a-sqrt(b))^n=x*a-y*sqrt(b);原创 2018-01-23 14:57:00 · 213 阅读 · 0 评论 -
HDU - 5120(几何、求两圆相交)
/* HDU - 5120 求两圆相交部分的面积 输入两个圆心坐标和半径 直接调用模板就行*/#include#include#include#include#include#include#define ll long long#define INF 2147483647#define N 25#define P原创 2018-01-22 16:16:39 · 193 阅读 · 0 评论 -
HDU 5114(几何)
/* HDU 5114 题意大体是 有一个矩形,有两个点在矩形内沿(1,1)移动 若碰到矩形的边则遵从入射角等于出射角且能量守恒的反弹 给出矩形大小n,m,以及两个点的初始位置(x1,y1)(x2,y2) 问他们能否相撞,如果能则在哪儿相撞,不能则输出Collision will not happen. 解题思路大概是原创 2018-01-22 16:19:07 · 236 阅读 · 0 评论 -
hdu 5976(数论、前缀和、前缀积、逆元)
/* hdu 5976 题目大意是 给你一个数x 将它分解成任意个数之和的形式,但这些数不能相同 即x= a1+a2+……+an(ai!=aj) 然后将分解的数相乘使它最大输出这个数 即使s=a1*a2*……*an最大,输出s 解题思路 一个>=5的数分解成若干个数之和 我们要乘积最大原创 2018-01-22 16:14:20 · 321 阅读 · 0 评论 -
poj 3233(矩阵)
/* poj 3233 题目大意是 给你矩阵A,求矩阵S=A+A^2+……+A^K 一开始准备用矩阵求 S(k)=S(k-1)+A^k 然后就构造了一个由矩阵组成的矩阵 C={E E} {0 A} 后面感觉太麻烦了 然后发现 C^2={E E+A} {0原创 2018-01-29 19:56:47 · 358 阅读 · 0 评论 -
51nod 1836(矩阵快速幂,求期望,__float128)
/* 51nod 1836 众所周知,有一个神秘的组织——战忽局,在暗中保护着我们。 在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人。 如今某外星间谍已经获得了战忽局曾经参与的n次事件的资料, 局座发现了这件事,于是决定再次用忽悠来保证战忽局的安全。 局座将发表m次演讲,每一天他都会从n事件中等概率地挑选一件混淆众人原创 2018-01-28 20:10:17 · 264 阅读 · 0 评论 -
hdu 1521(指数型母函数)
/* hdu 1521 指数型母函数 指数型母函数主要解决排列问题 问题解决与普通母函数差不多 只不过是每一项都要除以该项的阶乘 所求结果就是x^k/k!前面的系数 也就是c1[k]*k!*/#include#include#include#include#include#include#defi原创 2018-01-29 13:37:37 · 242 阅读 · 0 评论 -
Kattis - aplusb(FFT)
/* Kattis - aplusb 题意大体是 给一些数,求满足i,j,k两两不相等且ai+aj=ak条件的(i,j,k)个数。 大体思路是 先把数存入一个数组 然后求出ai+aj的所有可能的值的个数 记录下每种数的个数直接和自己FFT就可求出 每种数有几种方式得来 然后把所有数组中的数对应的个原创 2018-01-29 13:34:11 · 474 阅读 · 0 评论 -
hdu 6055(简单几何、找正方形)
/* hdu 6055 题意大体是 给你一堆点 点的坐标(x,y)x y都是整数 问这些点能组成多少个不同的正多边形 因为x y是整数 所以能组成的正多边形只能是正方形(这个自己想想吧应该很好懂) 所以题目就变成问我们正方形有多少个 我们先枚举两个点 两个点组成正方形的一条边 一条边可以确原创 2018-01-28 19:56:12 · 294 阅读 · 0 评论 -
母函数
/* 游戏币有 n 种币值 其中币值为v_i的有 w_i 个 现在BD手里只有一个 x 元的游戏币 为了方便,她想换成零钱,问有多少种方案?*/#include#include#include#include#include#include#define ll long long#define INF 2147483647原创 2018-01-28 19:55:55 · 188 阅读 · 0 评论 -
hdu 4602(推公式、矩阵快速幂)
/* hdu 4602 题目大意是 将一个数n写成多个整数相加的形式 问所有式子里面1、2、3……n有多少个 1-5的所有组合可以写成一下形式 1 2 3 4 5 1 1 2 5 12 28 2 1 2 5 12原创 2018-01-28 19:55:23 · 269 阅读 · 0 评论 -
hdu 4652(概率dp)
/* hdu 4652 题目大意是 有一个m个面的骰子 然后根据输入求 连续出现n个相同面 以及n个不同面的期望 以往的概率dp都是考虑 dp[i]由什么组成,然后列出递推方程 而这题考虑,dp[i]会变化成什么 1.连续出现n个相同面的期望 设dp[n]表示已经掷出n个相原创 2018-01-28 19:54:46 · 243 阅读 · 0 评论 -
hdu 1969(二分)
/* hdu 1969 题目大意是 有n块蛋糕,f个伙伴,告诉你每块蛋糕的半径 包括自己一共f+1个人要均分这n块蛋糕 可以不管分到的蛋糕是什么形状的 但是每人只能分一块(也就是说,分得的蛋糕只能从一整块蛋糕上切) 解题思路大体是 二分查找要分给每个人的蛋糕是否够*/#include #in原创 2018-01-24 12:01:27 · 217 阅读 · 0 评论 -
hdu 2141(二分)
/* hdu 2141 题意大体是 给你L个a,n个b,m个c以及s个x 问是否存在a+b+c==x 题目数据不多可以先合并a+b 存入数组ab[] 然后枚举c得到x-c 然后在数组ab中二分查找 是否存在x-c即可*/#include #include #include #inc原创 2018-01-24 12:01:52 · 137 阅读 · 0 评论 -
hdu 4004(二分)
/* hdu 4004 题意大体是 青蛙要过河,河上有n块石头,只能跳m下 告诉你河宽L以及每块石头离开始的岸边的距离 问青蛙至少要有跳多远的能力才能跳过去 可以把对岸看成距离开始的岸边L远的一块石头 需要跳到这块石头上去 二分找到青蛙需要的最小的跳跃能力即可*/#include #include原创 2018-01-24 12:02:12 · 129 阅读 · 0 评论 -
hdu 3037(卢卡斯定理)
/* hdu 3037 卢卡斯定理 直接套模板就行 主要用于求 C(N,M)%P 其中N与M较大而P小时 附带提一下卡特兰数 h(n)=C(2n,n)/(n+1) (n=0,1,2,...) 或 h(n)=c(2n,n)-c(2n,n-1)(n=0,1,2,...) 具体怎么来的我也不知道原创 2018-01-26 12:24:33 · 256 阅读 · 0 评论 -
hdu 2082(普通母函数)
/* hdu 2082 普通母函数 直接套模板就行 普通母函数主要解决组合问题 大概思路是开2个数组,c1[ ]保存当前得到的多项式各项系数,c2[ ]保存每次计算时的临时结果, (解释下c1[a]=b,其中a为多项式中x的指数,b为该项的系数) 当每次计算完毕后,把它赋给c1,然后c2清零。 计算的时候,开3层for原创 2018-01-26 12:24:54 · 245 阅读 · 0 评论 -
zoj 3547(容斥原理)
/* zoj 3547 题目大体上就是 有n个员工编号1~n 每个人的工资都是自己编号的四次方 如 2号的工资就是 2*2*2*2=16 现在老板要把编号与n互质的人裁掉 那么老板能省多少钱 简而言之 求1~n中与n互质的数的四次方和 直接求互质的较难 所以先求不互质有公约数的然后用容斥原原创 2018-01-26 12:28:19 · 287 阅读 · 0 评论 -
UVA 10325(容斥原理)
/* UVA 10325 题目大体就是说 给你一个数n,再给你m个数 问你1~n之中有多少个数与这m个数都互质 输入之后直接用容斥原理就行了 顺便记录一下 if(i&(1>j)&1)==1)效果是一样的*/#include#include#include#include#include#include原创 2018-01-27 13:54:42 · 248 阅读 · 0 评论 -
hdu 2841(容斥原理)
/* hdu 2841 题意大概是 你站在(0,0)点 给你一个以(11,1)为顶点n*m的方格 每个交点处都有一棵树 问你能看到几棵树 假设有两棵树 他们的坐标分别为(x1,y1)(x2,y2)(x1>x2 y1>y2) 若(0,0)->(x1,y1)和(0,0)->(x2,y2)两个向量平行 那原创 2018-01-27 13:54:57 · 226 阅读 · 0 评论 -
poj 3904(容斥原理)
/* poj 3904 题意大体是 给你n个数 问在这n个数中找4个没有公约数的数 有多少组 ※ 4个数没有公约数不代表两两互质 比如 2 3 4 5 2和4就不互质但他们四个没有公约数 由于直接求没有公约数的组数比较复杂 我们可以先算有公约数的组数 因此需要将N个数每个原创 2018-01-27 13:55:15 · 478 阅读 · 0 评论 -
zoj 3822(概率dp)
/* zoj 3822 题目大意是 有一个n*m大小的棋盘 每天放一颗棋子 问使得这个棋盘每行每列都有一颗棋子的期望 解题思路大体是 建立一个三维的dp数组dp[i][j][k] 表示放第k颗棋子使得,棋盘有i行j列有棋子的概率 我们可以考虑这个概率的组成 这个概率肯定是由只放了k-原创 2018-01-27 13:56:45 · 332 阅读 · 0 评论 -
hdu 2298(推公式、解方程)
/* hdu 2298 题目大意就是 你站在(0,0)点射箭要射到(x,y)点 告诉你箭的速度v 问通过调整角度能不能射到(x,y)点 如果可以问最小角度是多少 如果不行输出-1 这就是一道高中物理题 当箭刚好到(x,y)点那么所需的角度最小 设与x方向的夹角为α 则 y方向有y原创 2018-01-27 13:57:03 · 324 阅读 · 0 评论 -
UESTC - 1716(圆桌排序)
/* UESTC - 1716 圆桌排序问题 就是说n个人围着一圈排序有多少种方法 首先选定定n中任意一个作为第一个, 那么它与首先选定其他n-1个中任一个作为第一个排列是重复的。 选定第一个之后,按照顺时针排列余下的, 就有A(n,n)种排列方式,这里面有n个重复的,结果为A(n,n)/n。 也就是(n-1)!原创 2018-01-27 13:57:17 · 1283 阅读 · 0 评论 -
51 nod 1189(约数个数定理)
/* 51 nod 1189 运用了约数个数定理 对于一个大于1正整数n可以分解质因数,即: n=a1^k1*a2^k2*……*ai^ki 则n的正约数的个数就是,质因数的指数+1再全部相乘,即 f(n)=(1+k1)*(1+k2)*……*(1+ki)*/#include #include #include #incl原创 2018-01-27 13:56:10 · 408 阅读 · 0 评论 -
51Nod 1116(进制转换)
/* 51Nod 1116 题意大体是 一个数在k进制下是(k-1)的倍数问k是几 进制转换 十进制转换成k进制的核心是 a5a4a3a2a1=a5*k^4+a4*k^3+a3*k^2+a2*k^1+a1*k^0 先把每一位转换成十进制下的数 如:7->7 A->10一样 然后从个位开始乘以进制数加上下一位原创 2018-01-26 12:23:54 · 198 阅读 · 0 评论 -
hdu 5839(简单几何、暴力)
/* hdu 5839 题目大体就是说 给你一对点找到符合以下要求的四面体 1.至少四条边相等(换句话说可以5条边或者6条边) 2.如果只有四条边相等那么不相等的两个边为对边 直接暴力 先用两个循环,枚举两个点,然后找到这两个点距离相等的点,放入一个数组。 然后在这个数组中,找两个符合条件的点。 注意每个正四原创 2018-01-24 12:02:31 · 260 阅读 · 1 评论 -
hdu 6198(找规律、矩阵快速幂)
/* hdu 6198 题目大意就是 给你一个数k 问你用k个斐波拉契数不能组成的最小的数是几 比如 当k==1时 不能组成斐波拉契数就是4 因为 0 1 1 2 3 5 8 13 21 34 然后我们多列几项找规律 k==2时 答案为12 k==3时 答案为33 我们找到规律原创 2018-01-24 12:02:52 · 281 阅读 · 0 评论 -
51nod 1103(抽屉原理、前缀和)
/* 51nod 1103 抽屉原理就是说 9个抽屉要放十个东西,必定有一个抽屉要放至少两个 而这题的思路就是 把每个数与前面所有数相加,然后对n取余 就是我们所说的前缀和取余 如果某一个等于0那么就输出包括这个数在内的之前的数 或者找到两个相同的余数输出左端点到右端点之间,包括右端点在内的数 因为题目特殊性原创 2018-01-24 12:03:30 · 180 阅读 · 0 评论 -
poj 3071(概率dp)
/* poj 3071 题目大意是 有2^n个球队 相邻两个队两两打淘汰赛 告诉你他们每个队打其他队胜利的概率 问那个队胜利的概率大 用dp[i][j]表示第i轮第j队胜利的概率 那么dp[i][j]的前提就是 i-1轮的时候j是赢的 而且第i轮赢了对方 接下来就是找到第i轮的时候原创 2018-01-24 12:03:43 · 151 阅读 · 0 评论 -
Acdream 1113(概率dp)
/* Acdream 1113 题目大意是 给你一个n 然后扔骰子 设当前值为x 所扔出来的值为y 如果(x+y)>n 则当前值还是x 否则当前值就变为(x+y) 求从0到n所扔的骰子的次数的概率期望 首先dp[n]肯定是0 往前推 得到dp[i] = cnt*原创 2018-01-24 12:03:57 · 126 阅读 · 0 评论