
高精度
zhouyuyang233
此乃ZJ之蒟蒻也
望大牛勿喷
我等蒟蒻感激不尽
展开
-
bzoj1002: [FJOI2007]轮状病毒
传送门用的是一种叫做基尔霍夫矩阵的高科技做法(然而并不懂233)推得一个公式f[i]=3*f[i-1]-f[i-2]+2飞速高精度ac。膜拜Vfleaking神犇的推导http://vfleaking.blog.163.com/blog/static/17480763420119685112649//***********************************原创 2017-02-16 20:37:29 · 315 阅读 · 0 评论 -
bzoj1111: [POI2007]四进制的天平Wag
光棍专属题目233 传送门 显然是要dp的辣。 设f[i]表示前i位的最小花费。 g[i]表示前i位,且有进位的最小花费。 转移自己yy一发就ok辣。 扯淡,还要高精度呢。#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>#原创 2017-05-19 18:45:11 · 405 阅读 · 0 评论 -
bzoj1428: Christopher
传送门 大力Lucas定理。 首先将N,M转化为P进制数。 然后发现只要有一位满足mi>ni就是0 发现不太好算。 转化为C(n,m)!=0的计算。 发现所有mi必须小于等于ni。 方案数=Πni+1\Pi{n_i+1}#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iostre原创 2017-05-30 21:23:07 · 204 阅读 · 0 评论 -
bzoj1308: fac
传送门 题目看上去非常不可做。 考虑缩小答案规模。 首先将25!拆分: 25!=(1∗2∗3∗4∗5)∗(6∗7∗8∗9∗10)∗(11∗12∗13∗14∗15)∗(16∗17∗18∗19∗20)∗(21∗22∗23∗24∗25)25!=(1*2*3*4*5)*(6*7*8*9*10)*(11*12*13*14*15)*(16*17*18*19*20)*(21*22*23*24*25) 将原创 2017-05-23 21:21:15 · 409 阅读 · 0 评论 -
bzoj1416&1498: [NOI2006]神奇的口袋
传送门 傻逼题。 直接计算方案数,除上总方案数就可以了。 注意要用高精度。 为啥oj上有两道题?#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define mo 10000using namespace std;int f[20005],p[20005]原创 2017-04-29 15:42:32 · 721 阅读 · 0 评论 -
bzoj1265: [AHOI2006]斐波卡契的兔子(kacci)
传送门 高精度模板题。type arr=array [0..5005] of int64;var x,y1,y2,y3,z1,z2,z3,bas,ans:arr; s:ansistring; sum,i,n,j:longint; a,b,c,modd:int64;procedure jia(var a:arr; b,c:arr); var i:longint; begi原创 2017-04-14 11:37:00 · 618 阅读 · 0 评论 -
bzoj1263: [SCOI2006]整数划分
传送门 我们可以求出满足xx−1>(x−1)xx^{x-1}>(x-1)^x且xx+1>(x+1)xx^{x+1}>(x+1)^x的整数x 然后手玩一下发现x=3 所以要尽可能的多拆出3。 不难得到以下方案: 1.n%3==0 拆成n/3个3 2.n%3==1 拆成n/3-1个3,2个2 3.n%3==2 拆成n/3个3,1个2 高精度一发水过。uses math;var a:原创 2017-04-13 21:47:49 · 600 阅读 · 0 评论 -
bzoj4807: 車
传送门 答案应该一眼就能看出来是C(max(n,m),min(n,m)) 高精度+线性筛加速分解跑得飞快。#include<cstring>#include<iostream>#include<cstdio>#include<algorithm>#include<cstdlib>#include<cmath>#define N 1000005using namespace std;原创 2017-04-03 20:28:27 · 846 阅读 · 0 评论 -
bzoj1225: [HNOI2001] 求正整数
传送门 设M=a1p1∗a2p2∗......∗anpnM=a1^{p1}*a2^{p2}*......*an^{pn},则因数个数是Πi=1(pi+1)\Pi_{i=1}(pi+1) 然后dp f[i][j]表示前i个质数,组成了j个因数的最小数字。 +上高精度发现愉快的T了 然后我们可以将数用log的值表示。 到最后再加就可以pass了。#include<cstring>#incl原创 2017-04-12 15:50:36 · 402 阅读 · 0 评论 -
bzoj1220: [HNOI2002]跳蚤
传送门 有毒的数据范围。 直接容斥+高精度不虚。#include<cstring>#include<cmath> #include<cstdio> #include<iostream> #include<cstdlib> #include<algorithm>#define ll long long#define mo 1000000000using namespac原创 2017-04-10 15:36:59 · 388 阅读 · 0 评论 -
bzoj1089: [SCOI2003]严格n元树
传送门 设f[i]表示深度小于等于i的树的个数。 得到公式 f[i]=f[i-1]^n+1 答案就是f[d]-f[d-1]; 高精度水过。type arr=array [0..5005] of int64;var f:array [0..20] of arr; n,d,i:longint;procedure cheng(a,b:arr; var c:arr); var i,原创 2017-03-31 08:55:11 · 400 阅读 · 0 评论 -
bzoj1008: [HNOI2008]越狱
传送门此等水题,直接上公式:ans=m^n-m*(m-1)^(n-1)。/************************************************************** Problem: 1008 User: zhouyuyang Language: Pascal Result: Accepted Time:0 ms原创 2017-02-18 19:17:38 · 332 阅读 · 0 评论 -
bzoj1005: [HNOI2008]明明的烦恼
传送门膜拜PoPoQQQ大爷,题解树的Prufer编码,以下内容摘自度娘:Prufer数列是无根树的一种数列。在组合数学中,Prufer数列由有一个对于顶点标过号的树转化来的数列,点数为n的树转化来的Prufer数列长度为n-2。它可以通过简单的迭代方法计算出来,一个树对应一个Prufer数列。Prufer序列显然满足一个性质:一个点若度数为d,则一定在Prufer序列中出现了原创 2017-02-17 17:26:20 · 466 阅读 · 0 评论 -
bzoj1945: [Ceoi2007]Royaltreasury
传送门 裸的树形dp。 f[i][0/1]表示当前位置没用/用了 转移暴力就可以了 然后就是喜闻乐见的高精度模板了。#include<cmath>#include<vector>#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>#define N 1005原创 2017-07-26 21:19:39 · 412 阅读 · 0 评论