题意 从$0$到$n-1$的数字里可重复的取至多$m$个数的和等于$k$的方案数. 思路 显然的生成函数的思路为构造 $(1+x+x^{2}+...+x^{n-1})^{m}$ 那么$x^{k}$的系数即答案.等比数列求和后得到 $ \frac {(1-x^n)^m} {(1-x)^m}$ 对分子二项式展开得到 $(1-x^n)^m = \sum_{i=0}^m C_m^{i}(-1)^i * x^{n*i}$ 对分母根据泰勒展开得到 $(1-x)^{-m} = \sum_{j = 0}^{\i…
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4915 Parenthese sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 172    Accepted Submission(s): 69 Problem Description bobo found an anc…
题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=4902 Nice boat Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 235    Accepted Submission(s): 116 Problem Description There is an old country…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4925 Apple Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 188    Accepted Submission(s): 129 Problem Description I've bought an orchard an…
2019 Multi-University Training Contest 6 http://acm.hdu.edu.cn/contests/contest_show.php?cid=853 1002. Nonsense Time 这题比较神奇...有一个结论是:一个长度为\(n\)的随机排列的最长上升子序列期望长度为\(O(\sqrt n)\). 那么我们考虑倒着删数,每次暴力处理出当前任意一个最长上升子序列,然后删除\(x\)的时候判一下\(x\)在不在当前的序列中,在就重新求一遍,否则不…
2019 Multi-University Training Contest 5 http://acm.hdu.edu.cn/contests/contest_show.php?cid=852 1004. Equation 把所有绝对值的零点排个序,然后解方程就好了. #include<bits/stdc++.h> using namespace std; // #define int long long void read(int &x) { x=0;int f=1;char ch=…
2019 Multi-University Training Contest 4 http://acm.hdu.edu.cn/contests/contest_show.php?cid=851 1001. AND Minimum Spanning Tree 如果\(n\not =2^x-1\)那么答案为\(0\),可以这么构造: 对于\(i\ne 2^x-1\)把\(i\)连向第一个比\(i\)小的\(j\),并且\(i\&j=0\). 否则\(i\)连向\(i+1\),把这两个点绑在一起就好了…
2019 Multi-University Training Contest 3 http://acm.hdu.edu.cn/contests/contest_show.php?cid=850 1004. Distribution of books 考虑二分答案,设当前二分出来的是\(x\). 设\(f_i\)表示前\(i\)个能分成最多的段数,使得每一段和都\(\leqslant x\). 转移显然,枚举一个\(j\),若\(s_i-s_j\leqslant x\)则转移,\(s_i\)表示前…
2019 Multi-University Training Contest 2 http://acm.hdu.edu.cn/contests/contest_show.php?cid=849 1005. Everything Is Generated In Equal Probability 考虑一个随机的排列的逆序对个数,显然对于两个数\(a,b\),他们位置是均匀排布的,也就是说有\(\frac{1}{2}\)的概率成为逆序对,并且是独立的. 所以一个长度为\(n\)的随机排列期望逆序对个…
2019 Multi-University Training Contest 1 http://acm.hdu.edu.cn/contests/contest_show.php?cid=848 1001. Blank 这题我打比赛的时候想到正解了没敢写... 设\(f_{a,b,c,d}\)表示\(\{0,1,2,3\}​\)最后一次出现的位置排序之后的结果,那么每次枚举四种情况转移就好了. 复杂度\(O(Tn^4)\),由于转移的循环除了个\(4!\)的常数所以跑的很快. #include<b…
个人感觉题解的复杂度很玄,参不透,有没有大佬讲解一下- - /* HDU 6102 - GCDispower [ 数论,树状数组] | 2017 Multi-University Training Contest 6 题意: 给定排列 a[N], M 组 L,R 求解 ∑ [ L <= i < j < k <= R ] [ GCD(a[i], a[j]) == a[k] ] * a[k] 限制:N, M <= 1e5 分析: 数论角度一般考虑枚举 k,由于是区间询问,且贡献有…
/* HDU 6098 - Inversion [ 贪心,数论 ] | 2017 Multi-University Training Contest 6 题意: 求出所有B[i] = max(A[j]) [j % i != 0] 分析: 排个序从大到小找第一个不是它倍数的数. 至多扫倍数的个数,均摊复杂度O(nlogn) */ #include <bits/stdc++.h> using namespace std; struct Node { int x, i; }; bool cmp(No…
/* HDU 6105 - Gameia [ 非平等博弈 ] | 2017 Multi-University Training Contest 6 题意: Bob 可以把一个点和周围所有点都染黑,还有 k 次割掉一条边的操作 Alice 可以把一个点染白 A先B后,问谁赢 分析: 如果图中不存在两两匹配,则Bob输 每一次两两匹配都需要一次割边,除了最后一次 如果没能力割边,Bob输 */ #include <bits/stdc++.h> using namespace std; int t,…
比赛的时候一直念叨链表怎么加速,比完赛吃饭路上突然想到倍增- - /* HDU 6107 - Typesetting [ 尺取法, 倍增 ] | 2017 Multi-University Training Contest 6 题意: 文章包含N个字符串和 1 个图片 字符串之间要求空 1 格 告诉你纸张宽度 W 固定,图片的左右留白宽度 dw, W-pw-dw 固定 每次询问给定图片的高h和首行x 问 字符串加图片总共占多少行 分析: nxt[W][i] = j 代表 行宽为 W 时第 i 个…
思路来自题解和一些博客 最麻烦的是样例没啥用- - /* HDU 6046 - hash [ hash,鸽巢 ] | 2017 Multi-University Training Contest 2 题意: 给出一个1e3*1e3的矩阵以及 一个 生成1e6*1e6的矩阵的随机函数 在1e6*1e6的矩阵中找到1e3*1e3的矩阵的位置 分析: 将1e3*1e3的矩阵每一个位置压入哈希表中,哈希值为其与之后63位所组成64位的值(不满64位就不压入) 由于 2^64 远大于 1e12 故可认为哈…
/* HDU 6048 - Puzzle [ 思维,结论 ] | 2017 Multi-University Training Contest 2 题意: 类似华容道的问题, N*M 的矩阵中N*M-1个元素按一定要求打乱,每次可以把一个和空格有公共边的块和空格交换 问能否还原局面:从上到下从左到右,依次填 1,2,3,… 右下角为空. 分析: 结论1:将原矩阵看作从左到右从上到下的数列,任意操作不改变 逆序对数量的奇偶性 结论2:任意局面一定能还原到 除了最右下角2*2方格中的3个数字,剩下的…
/* HDU 6053 - TrickGCD [ 莫比乌斯函数,筛法分块 ] | 2017 Multi-University Training Contest 2 题意: 给出数列 A[N],问满足: 1 <= B[i] <= A[i] ; 对任意(l, r) (1<=l<=r<=n) ,使得 gcd(bl,...br) >= 2 ; 的 B[N] 数列的个数 分析: 设 gcd(b1,...bn) = k (k >= 2),此时 k 对答案的贡献为 (a1/k)…
Buildings Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 185    Accepted Submission(s): 25 Problem Description Your current task is to make a ground plan for a residential building located i…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5738 题意:从n(n <= 1000)个点(有重点)中选出m(m > 1)个点(选出的点只看标号,不看具体坐标)合成一个集合,问集合中的点共线(可以重合)的集合个数? 思路:按照x,y双关键字排序,之后对每一个点求出所有以它为一个端点的线段个数: 及时计数:要求以当前点为端点的线段数,分成两种情况: 1. 线段就为当前点,即将当前点的重点合成一个点,C(n,2)+C(n,3)+...+C(n,n)…
Rating Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 578    Accepted Submission(s): 363Special Judge Problem Description A little girl loves programming competition very much. Recently, she h…
hdu 6103 Kirinriki #include<bits/stdc++.h> using namespace std; int n,m,ans; ]; void doit(int l,int r) { ,nw=; for(;l<r;l++,r--) { while(l+d<r-d&&nw+abs(s[l+d]-s[r-d])<=m)nw+=abs(s[l+d]-s[r-d]),d++; ans=max(ans,d); nw-=abs(s[l]-s[r]…
目录 Contest Info Solutions A. run D. monrey G. transform H. travel I. car J. farm Contest Info Practice Link Solved A B C D E F G H I J K 6/10 Ø . . Ø . . Ø Ø Ø Ø . O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 . 没有尝试 Solutions A. run 题意: 白云每次可以移动\(1\)米或者\(k\)米,询问移动的米数在…
/* HDU 6038 - Function [ 置换,构图 ] 题意: 给出两组排列 a[], b[] 问 满足 f(i) = b[f(a[i])] 的 f 的数目 分析: 假设 a[] = {2, 0, 1} 则 f(0) = b[f(2)] f(1) = b[f(0)] f(2) = b[f(1)] 即 f(0) = b[b[b[f(0)]]] f(1) = b[b[b[f(1)]]] f(2) = b[b[b[f(2)]]] 由于将 a[i]->i 连边可以得到不相交的多个循环 可以看出…
定义一个数 y 为 x 的 I-number.对于 y 有如下要求: 1.y > x; 2.y 的每一位之和要为10的倍数(例如 28 每一位之和为 10 ,为 10 的 1 倍); 3.这样的 y 有很多个,但是I-number为最小的那个 注意:x 的长度不会超过 105 位 这道题目可以直接爆搞,因为可以证明符合要求的 y 一定满足 y < x + 20 但是在敲这道题目的时候需要注意,他会有恶心的前导 0 , 而且不能删除这些前导 0 . 例如,202 对应的   I-number为2…
题目链接:pid=5305">传送门 题意: n个人给定m个关系.每一个关系为x,y表示x,y是朋友.可是可能是online friends,也可能是offline friends. 要求每一个人的online 和offline 朋友的数量是一样多的,问有多少种可能. 分析: n<=8, 因此m<=28.由题意能够知道.每一个人的关系数必须为偶数,然后我们能够枚举一个关系的状态,通过 每一个人的online,与offline关系数量小于等于1/2关系总数来剪枝. 代码例如以下:…
题意大致如下:屌丝找女神聊天,女神回了一句 hehe ,而我们都知道 Hehe 有两个意思,一个就是 Hehe ,另外一个则是 wqnmlgb (我去年买了个表) ,所以屌丝很纠结,于是开始思考到底女神是什么意思,现在屌丝想知道女神的一句话究竟有多少种意思? 这题的定位是签到题,很水. 从题目给的第四组测试数据 eheheheh ,对应的答案是 3 种情况,由此分析(我下面用 H 表示 he ,用 W 表示 wqnmlgb): 第三组数据:   eHHHh 可能的情况就是:eWHh   eHWh…
题目大意:输入一个数x,求一个对应的y,这个y满足以下条件,第一,y>x,第二,y 的各位数之和能被10整除,第三,求满足前两个条件的最小的y. 解题报告:一个模拟题,比赛的时候确没过,感觉这题太坑了,比赛的时候对于所有的测试数据都能得出正确的结果,但是这题的数据太坑了,要求如果输入里面带了前导0,在输出时要按照原样将前导0输出来,我一直以为要把前导0去掉,所以一直没过.然后就是这题y<=x+20,由于满足这个关系,所以只要将输入的数经过多次加1,暴力,然后逐一判断是否满足条件就可以了. #i…
解题报告:一个模拟题,有两张表格,然后输入一个字符在第一章表格中的位置,让你找出这个字符在第二章表对应的位置. 我欧诺个的是暴力打表,输了两百多个数字,时间复杂度直接降到O(1),这题觉得比较坑的就是题目里面没有给出数据范围,一开始数组开小了,一直WA,搞得我一直以为是表打错了,找了半个小时,结果确定正确,才怀疑是数组开小了.这题数组至少要开到10的七次方. #include<cstdio> #include<iostream> #include<cstring> us…
听了杜教的直播后知道了怎么做,有两种方法,一种构造函数(现在太菜了,听不懂,以后再补),一种容斥原理. 知识补充1:若x1,x2,.....xn均大于等于0,则x1+x2+...+xn=k的方案数是C(k+m-1,m-1)种(貌似紫书上有,记不太清了). 知识补充2:若限制条件为n(即x1,x2....xn均小于n,假设有c个违反,则把k减掉c个n(相当于把c个超过n的数也变成大于等于0的),就可以套用知识1的公式了. 则最后的答案为sum( (-1)^c * C(m , c) * C(m-1+…
Practice Link J. Different Integers 题意: 给出\(n\)个数,每次询问\((l_i, r_i)\),表示\(a_1, \cdots, a_i, a_j, \cdots, a_n\)中有多少个不同的数. 思路: 先分别离线求出\(a_1, \cdots a_i\)以及\(a_j, \cdots, a_n\)中有多少个不同的数. 再考虑有多少个数既在\([1, i]\)中也在\([j, n]\)中,再离线做一次. 考虑一个数第一次出现的时候,那么这个数下一次出现…