
数论
weixin_43331783
/p/px5xQRGVPD/
展开
-
poj1811rime Test
占坑。附赠题解https://blog.youkuaiyun.com/xiaolonggezte/article/details/60965540原创 2019-03-19 17:07:53 · 90 阅读 · 0 评论 -
HDU 1085 Holding Bin-Laden Captive!
整数分解的变式(没什么难点,用模板就可以,不理解建议看上一篇博客。这里只需要注意一下范围max)#include<bits/stdc++.h>using namespace std;int c1[8000+5],c2[8000+5];const int basenumber=3;int main() { int number[4]; while (cin>...原创 2019-04-18 22:34:36 · 84 阅读 · 0 评论 -
A Famous Stone Collector HDU - 4248
乍一看母函数,后来发现复杂度太大了数组也开不了嘤嘤嘤忧桑。查了下题解发现是dp(感觉组合数学和dp傻傻分不清楚)接下来将下题解:dp【i】【j】表示将i种石头分为j个石头的排列数。新增加一种石头,假设从中间选择k个石头。之前石头数目为j个,排列为dp【i】【j】,dp【i+1】【j+k】等于把k个石头加入j个石头的的排列数,为dp【i】【j】*c【j+k】【k】如果不选那么则为dp【i】...原创 2019-04-23 18:26:39 · 133 阅读 · 0 评论 -
Count the Buildings HDU - 4372
看错以为题目有n个建筑高度为1n,从前看能看到第f个,从后看能看到第b个,然有n个建筑高度为1n,从前看能看到f个,从后看能看到b个,忧桑桑。没特判一直re没有wa好久发现。题解:斯特林数入门。科普一下斯特林数https://zh.wikipedia.org/wiki/%E6%96%AF%E7%89%B9%E6%9E%97%E6%95%B0。没有外网的话下面的内容和链接内基本一致简单来...原创 2019-04-23 22:00:42 · 138 阅读 · 0 评论 -
C - Train Problem II HDU - 1023 (有趣的卡特兰数)
卡特兰数的维基百科:https://zh.wikipedia.org/wiki/卡塔兰数1-100的卡特兰数:http://blog.youkuaiyun.com/lttree/article/details/29392541原创 2019-04-19 14:35:37 · 155 阅读 · 0 评论 -
湫秋系列故事——安排座位 HDU - 4532
题解:组合dp。dp【i】【j】代表前i个系有j个点同系的人相邻。增加一个系,将该系人seq分为k组,加入前面j个点,那么原本相邻的应该隔开,但是又会增加新的相邻点,j个相邻点变为j - h + seq[i] - k个。转移方程为 dp[i][j - h + seq[i] - k] +=dp[i - 1][j] * C[j][h] % mod * C[sum + 1 - j][k - h] %...原创 2019-04-29 22:04:13 · 218 阅读 · 0 评论 -
组合数学入门知识点总结
题目来源:https://vjudge.net/contest/295931#overview常见知识点:母函数:科普:理解:普通母函数:从n个地方选取相同的东西的排列(不排序)指数母函数:从n个地方选取不同的东西的排列(排列)http://www.cnblogs.com/dolphin0520/archive/2012/11/07/2755080.html持续更新。题目:hd...原创 2019-05-08 12:20:52 · 934 阅读 · 0 评论 -
Coin Change HDU - 2069
熟悉的套路。多了一个限制,用的硬币总数不能大于100.一开始思考傻逼题。读题没看到限制,结果wa了后来思考了一下,不能直接在第三层循环加限制。那里加限制只能起到约束新面额的硬币数量,不能约束总共的硬币数量。正解应该是在在里面加一个循环,枚举加入新面额硬币前该方案硬币数量(有点难理解,简单来讲枚举达到j价值的硬币数量再加上新面额的硬币达到j + k * kx[i]价值)如果有l个硬币达到j价值,那么...原创 2019-05-05 21:01:30 · 223 阅读 · 0 评论 -
一卡通大冒险 HDU - 2512
贝尔数裸题。一开始第二类斯特林后来搜模板的时候看到了贝尔数,发现是裸题。#include<bits/stdc++.h>using namespace std;const int maxn = 2000+5;typedef long long ll;ll Bell[maxn];void init() { ll T[maxn]; Bell[0] = 1; ...原创 2019-05-05 22:03:43 · 141 阅读 · 0 评论 -
Fruit HDU - 2152
模板题。选择数据在最小和最大范围内,所以循环k坐下约束即可。#include<bits/stdc++.h>using namespace std;int c1[105],c2[105];struct node{ int x,y;}nn[103];int main() { int n,m; while (cin >> n >> m)...原创 2019-05-06 19:47:36 · 165 阅读 · 0 评论 -
B - 找单词 HDU - 2082
这题很好玩。首先科普一下母函数。链接:https://blog.youkuaiyun.com/dgq8211/article/details/7385718然后这道题就很简单啦。认为每个字母为响应的砝码价值和砝码数量。能够组合的单词价值就是砝码重量组合。那么就相当于求多项式函数(如果有多个砝码例如三个价值三的也就是3个c就乘以x^0+x^3+x^6(好像放一起格式有问题,所以大家将就着看意思懂就行...原创 2019-04-18 21:25:02 · 166 阅读 · 0 评论 -
Big Event in HDU HDU - 1171
懒得写题解。简单母函数板题。题解https://blog.youkuaiyun.com/h1021456873/article/details/50172979#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const...原创 2019-05-02 22:20:13 · 211 阅读 · 0 评论 -
寒训A题hdu6286
这道题就简单判断一下,2018的约束有1 2 1009 2008所以只要分以下几种情况讨论1.前一个区间内2018倍数,后一个区间任选2.后一个区间2018倍数,前一个区间任选3.前一个区间内2018倍数与后一个区间内2018倍数配(把这个重复的取消)4.前一个区间内1009的倍数(去掉2018的倍数),与后一个区间内2的倍数(去掉2018的倍数)5.后一个区间内1009的倍数(去掉2...原创 2019-03-12 16:46:25 · 99 阅读 · 0 评论 -
ZOJ3609B题寒训Modular Inverse
先看一下基础知识,拓展欧几里得那么问题就很简单了,判断一下最大公约数是否为一,如果不为一则无解。如果有,使用拓展欧几里得算法即可得姐,若解小于0则为满足题目要求最大正解,进行处理即可#include&lt;iostream&gt;#include&lt;stdio.h&gt;using namespace std;int exgcd(int a,int k,int &amp;y,in...原创 2019-03-12 17:49:52 · 93 阅读 · 0 评论 -
hdu2669寒训D题Romantic
跟之前那个题基本一样,拓展欧几里得的模板题。不再赘述,以下为代码#include<iostream>#include<stdio.h>using namespace std;typedef long long ll;ll exgcd(ll a,ll k,ll &x,ll &y){ ll d=a; if(k!=0) { ...原创 2019-03-12 18:34:35 · 131 阅读 · 0 评论 -
poj2769寒训c题Reduced ID Numbers
暴搜几个注意点:1.数据范围2.输入g个数从g开始求模数。假设输入八个数从八开始检测。为什么呢?可以假设一下如果假设六位所求。那么想让不同余,那么必然超过六个数模六一定会同余(这个没必要解释了吧)所以八个数一定会有相同的余数,同理,所以一定要从八开始测验。#include<iostream>#include<stdio.h>#include<cstring...原创 2019-03-13 14:45:23 · 104 阅读 · 0 评论 -
poj2689Prime Distance
数论之素数。题意:给定一个区间范围问此范围内所有相邻素数对之间最小的与最大的。看数据先:lu(及区间范围)为1-int最大值,区间长度不超过1000000.如果按照一般素数筛,则素数太多不可直接算出,况且无法卡数组那么大。所以做一个预处理,也是这个算法核心之一。先求出1到50000内所有素数(由于lu在interesting范围内,int合数最大的素数因子小于50000)。这是预处理然后素...原创 2019-03-19 13:52:24 · 102 阅读 · 0 评论 -
Factorial HDU - 1124
背景好多然而没什么用读题太慢了写题写少求N!的末尾0的个数。N!末尾的0是由2*5产生的。而且2因子的个数一定比5因子的个数多。所以只需要求N!的5因子的个数。数论知识点:1.若p是质数,p<=n,则n!是p的倍数,2.设p^x是p在n!内的最高幂,则x=[n/p]+[n/p2]+[n/p^3]+…;3.[n/(ab)]=[[n/a]/b]#include<iostre...原创 2019-04-25 20:56:47 · 123 阅读 · 0 评论 -
A - xiaoxin juju needs help HDU - 5651
组合数入门思路很简单:各个字母个数如果奇数大于等于两个则输出0(如aacckw)如果不超过那么相当于对单个字符的排列组合(例如aacckkkk相当于对ackk的字符排列)根据高中组合数知识。设coun为总数的一半,vs【x】为x的数量,那么用coun的阶乘除以各vs的阶乘为所求。由于这里数字较大取模,乘法逆元。快速幂熟练掌握对阶乘预处理时刻取模#include<iostrea...原创 2019-04-17 22:08:56 · 152 阅读 · 0 评论 -
小看了的母函数
作为一个菜鸡前几天刚接触了母函数,但是周末打比赛的时候完全没看出一个题目是母函数。进行深刻检讨的同时决定看一个母函数专题。首先指路我的母函数入门题。https://blog.youkuaiyun.com/weixin_43331783/article/details/89388476简单阐述对普通母函数的理解(欢迎大佬指错)从n个地方选取相同的东西的排列:特点1.选的方式只跟从哪里选的有关跟物体本身无...原创 2019-04-23 14:21:32 · 119 阅读 · 0 评论 -
HDU 4810 Wall Paintin
二进制拆分。题目简述:给n个数,求e(1-n)个数相互亦或的和。知识点:c与k亦或,计算每一位当为1个数为奇数时那位数才为1.比如011和001,那么第二位一个1第三位两个1知识点说明第二位有奇数个,故为1.那么结果010.所以求e个数的亦或和。拆分为每一位,从n个数中选取奇数1,再选取e-奇数个0,求和,最后再合并即可。直接看代码更简单。。。题解参考:https://blog.csd...原创 2019-05-02 17:58:47 · 122 阅读 · 0 评论 -
HDU4045 Machine scheduling
题解:https://www.cnblogs.com/DOLFAMINGO/p/8335724.html入门https://blog.youkuaiyun.com/zhangjiuding/article/details/78307211进阶:https://shichengxiao01.github.io/2018/02/17/第二类斯特林数小结/...原创 2019-04-28 22:25:18 · 153 阅读 · 0 评论