题意:和上题基本一样,求至少k对a>b的方案数.不取模!!! 做k+1遍容斥就行了 高精度超强!!!几乎把所有的都用上了 然后,注意有负数,所以容斥的时候正负分别保存然后再一减就行了 这是我省选前最后一次写高精度了 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long ll;…
2024: [SHOI2009] 舞会 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 368  Solved: 102 Description OItown要举办了一年一度的超级舞会了,作为主办方的Constantine为了使今年的舞会规模空前,他邀请了许多他的好友和同学去.舞会那天,恰好来了n个男生n个女生.Constantine发现,一般情况下,舞伴之间,总是男伴总是比女伴长得高,不过,偶尔也是有特殊情况的.所以,Constantine现在想知…
舞会 题目链接:https://www.luogu.org/problem/P2159 数据范围:略. 题解: 不会.... 看了题解觉得自己好傻逼啊…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2440 题意:给定K.求不是完全平方数(这里1不算完全平方数)的倍数的数字组成的数字集合S中第K小的数字是多少? 思路:首先,答案不超过2K,这个我看别人的知道的,我本以为答案会很大..这样二分就比较显然了.二分之后就是判断可行性.也就是求二分值n之内有多少个集合S中的数字.此时,我们可以反着想,就是计算有多少个数字不是S集合中的,也就是是完全平方数倍数的数字的个数.这个用容斥原理: (…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2656 [题意] 计算大数递推式 [思路] 高精度 [代码] #include<cstdio> #include<cstring> #include<iostream> using namespace std; ; const int base = 1e4; struct Bign { int len,N[maxn]; int& operator[](…
Description Input Output Sample Input 3 3 1 2 3 4 5 6 1 2 3 0 0 0 0 0 0 4 5 6 Sample Output 2 HINT [思路] 容斥原理+Hash 恰有k个元素相同的对数=至少k+1个相同*C(k+1,k) - 至少k+2个相同*C(k+2,k) + …… 枚举状态i,如果是101表示至少1和3两个相同,把n个年份关于i构造一个hash,然后放入hash中统计.这里只是关于位是1的构造hash,其他位都忽略了,所以得…
1042: [HAOI2008]硬币购物 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1747  Solved: 1015[Submit][Status][Discuss] Description 硬币购物一共有4种硬币.面值分别为c1,c2,c3,c4.某人去商店买东西,去了tot次.每次带di枚ci硬币,买si的价值的东西.请问每次有多少种付款方法. Input 第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4,…
1853: [Scoi2010]幸运数字 Time Limit: 2 Sec  Memory Limit: 64 MBSubmit: 1774  Solved: 644[Submit][Status][Discuss] Description 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是“幸运号码”!但是这种“幸运号码”总是太少了,比如在[1,100]的区间内就只有6个(6,8,…
Description 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴.有n个男生和n个女生参加舞会 买一个男生和一个女生一起跳舞,互为舞伴.Cathy收集了这些同学之间的关系,比如两个人之前认识没计算得出  a[i][j] ,表示第i个男生和第j个女生一起跳舞时他们的喜悦程度.Cathy还需要考虑两个人一起跳舞是否方便, 比如身高体重差别会不会太大,计算得出 b[i][j],表示第i个男生和第j个女生一起跳舞时的不协调程度.当然, 还需要考虑很多其他问题.Cath…
4517: [Sdoi2016]排列计数 题意:多组询问,n的全排列中恰好m个不是错排的有多少个 容斥原理强行推♂倒她 $恰好m个不是错排 $ \[ =\ \ge m个不是错排 - \ge m+1个不是错排\binom{m+1}{m} - \ge m+2个不是错排\binom{m+2}{m}... \\ = \sum_{i=m}^n \binom{n}{i} (n-i)!\binom{i}{m} \\ = \frac{n!}{m!} \sum_{i=m}^n (-1)^{i-m} \frac{1…
题目传送门 传送门I 传送门II 题目大意 一个无限大的棋盘上有一只马,设马在某个时刻的位置为$(x, y)$, 每次移动可以将马移动到$(x + A_x, y + A_y)$或者$(x + B_x, y + B_y)$.棋盘上有$n$个禁止位置不能经过,问马从$(0, 0)$走到$(E_x, E_y)$的方案数. 容斥是显然的. 每确定经过$k$个禁止位置的方案数的容斥系数是$(-1)^{k}$. 考虑带上容斥系数来动态规划, 注意到去掉重复的禁止位置后,$(0, 0), (E_x, E_y)…
BZOJ 洛谷 裸01分数规划.二分之后就是裸最大费用最大流了. 写的朴素SPFA费用流,洛谷跑的非常快啊,为什么有人还T成那样.. 当然用二分也很慢,用什么什么迭代会很快. [Update] 19.2.15 下午写的zkw费用流在BZOJ上T了= = 然而在洛谷上和以前写的跑的差不多快 当然还可以写整数二分或者KM... 输出的时候最好加个eps,不然可以被卡比如BZOJ discuss里的数据. 第一次写的代码: //3624kb 4016ms #include <queue> #incl…
BZOJ1220 HNOI2002 跳蚤 Description Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长.节目主持人会给该跳蚤发一张卡片.卡片上写有N+1个自然数.其中最后一个是M,而前N个数都不超过M,卡片上允许有相同的数字.跳蚤每次可以从卡片上任意选择一个自然数S,然后向左,或向右跳S个单位长度.而他最终的任务是跳到距离他左边一个单位长度的地方,并捡起位于那里的礼物.比如当N=2,M=18时,持有卡片(10…
题目大意:轮状病毒基定义如图.求有多少n轮状病毒 这个递推实在是不会--所以我选择了打表找规律 首先执行下面程序 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define M 110 using namespace std; struct abcd{ int to,next; bool ban; }table[M<<2]; int head[…
Description 硬币购物一共有4种硬币.面值分别为c1,c2,c3,c4.某人去商店买东西,去了tot次.每次带di枚ci硬币,买s i的价值的东西.请问每次有多少种付款方法. 题解: 十分喜欢这道题,真的非常巧妙.不加限制,该题会变得特别模板.有限制后,似乎正着求有些困难,我们就考虑反着求,即简单容斥一下. 我们先求出不加限制的方案数,再将不合法的方案数依次减掉. 考虑容斥原理:总方案 - $\sum$ 1个不合法 + $\sum$ 2个不合法 - $\sum$ 3个不合法......…
OItown要举办了一年一度的超级舞会了,作为主办方的Constantine为了使今年的舞会规模空前,他邀请了许多他的好友和同学去.舞会那天,恰好来了n个男生n个女生.Constantine发现,一般情况下,舞伴之间,总是男伴总是比女伴长得高,不过,偶尔也是有特殊情况的.所以,Constantine现在想知道,如果把这2n个人恰好配成n对舞伴,有多少种搭配方法,而且他要求最多只有k对舞伴之间女伴比男伴高.现在,Constantine需要参加SHTSC的你帮助他算出这个答案,当然啦,他会先告诉你这…
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2656 分析: 很容易想到递归分治,但遇到奇数时候f[i]=f[i/2]+f[i/2+1]这样两个部分都分治去做,那么整个时间就退化到了线性. 不过容易发现: f[23]=f[11]+f[12] f[11]=f[5]+f[6] f[12]=f[6] 所以要求f[11],f[12]只要求f[5],f[6] f[5]=f[2]+f[3] f[6]=f[3] 所以要求f[5],f[6]只要求…
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1064 分析: 如果a看到b,则a->b 那么: 1.如果图中有环,则说明这个环的长度肯定是答案的倍数.所以最大种类数=所有环的长度的gcd,最小种类数=所有环的长度的公约数中>=3的最小数 2.如果图中没有环且都是单独的长链,那么最大种类数=每个联通图中最长链的和,最小种类数=3(如果没有则-1) 3.要考虑一种特殊情况:a->b->c->d a->e-&g…
把x1~xn当成是1~n, 答案是不会变的. 然后直接模拟就行了...... P.S 双倍经验... BZOJ1416 && BZOJ1498 ------------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm>   using namespace std;…
15 < log250000 < 16, 所以不会选超过16个质数, 然后暴力去跑dfs, 高精度计算最后答案.. ------------------------------------------------------------------------------ #include<cstdio> #include<algorithm> #include<cstring> #include<cmath>   using namespace…
4710: [Jsoi2011]分特产 题意:m种物品分给n个同学,每个同学至少有一个物品,求方案数 对于每种物品是独立的,就是分成n组可以为空,然后可以用乘法原理合起来 容斥容斥 \[ 每个同学至少一个=所有方案数-\ge 1个同学没有+\ge 2 个同学没有-... \] \(\ge i\)个同学没有,我们拿出来i个同学\(\binom{n}{i}\)个方案,剩下就是每种物品分成\(n-i\)组再乘起来罢了... #include <iostream> #include <cstdi…
1042: [HAOI2008]硬币购物 题意:4种硬币.面值分别为c1,c2,c3,c4.1000次询问每种硬币di个,凑出\(s\le 10^5\)的方案数 完全背包方案数? 询问太多了 看了题解 只有4种物品,每种物品有数量限制 不考虑数量限制,\(f(i)\)凑出i的方案数,一遍完全背包就行了,注意先枚举物品 然后对于超过限制容斥: \[ 都不超过限制=所有方案- \ge 1个超限制+\ge 2个超限制-... \] i超限制就是i至少选了\(d_i+1\)个,其他任意选 #includ…
题目大意:n个人,k种假面,每人戴一种,戴第i种的可以看见第i+1种,戴第k种的可以看见第1种,给出m条关系表示一个人可以看到另一个人,问k可能的最大值和最小值.(n<=100,000,m<=1,000,000) 思路:染色,若点i颜色为ci,就把点i能到的点染成ci+1,能到点i的点染成ci-1,如果染之前已经染过了,设要染的点为j,则cj和ci+1(-1)模k同余,若cj不等于ci+1(-1),则k必然为|ci+1(-1)-cj|的因子,取gcd即可.若没有出现这种情况,最大答案为各连通块…
莫名其妙的变成了我们的noip互测题... 其实这题思想还是比较简单的,只是分类不好分而已 其实就是一个dfs的事 首先,非常明显,原题目中的所有关系可以抽象成一个图(这是...显而易见的吧...) 接下来,我们仅需在图上讨论即可 当然,这个图有几个部分组成其实并没有那么重要,毕竟,这些部分基本是互不干扰的. 所以接下来我们只需要对每一个块分别处理即可 我们来分类: 首先,如果所有块都是树,我们只需求出每个树上的最长链即可 接下来,如果存在环(包括真实的环和类环,即1-2-3-1和1-2-4+1…
http://www.lydsy.com/JudgeOnline/problem.php?id=1064 题意: 思路: 考虑以下几种情况: ①无环并且是树: 无环的话就是树结构了,树结构的话想一下就知道它的k最大值就是它的最长链,最小值就是3(如果链长>=3的话),如果有多棵树,只需要把它们的最长链加起来即可. ②存在环并且顺序相同 这种情况下的话k肯定是环长的约数,有多个环时就是它们之间的最大公约数.这样找最大和最小的约数即可. ③存在环并且顺序不同 上面这个图的话就不是一个简单的单顺序的环…
2986: Non-Squarefree Numbers Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 337  Solved: 156 Description 一个正整数K被称为squarefree,如果它没有一个D^2(D>1)这样的约数. Input 读入一个正整数N Output 找出第N个不是squarefree的数.1<=N<=10^10 Sample Input 10 Sample Output 27 Hint 前10个非s…
比值最大 分数规划 二分答案之后用费用流进行验证. 据说标称强行乘以1e7换成了整数的二分. 不过貌似实数二分也可以过. #include <map> #include <cmath> #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #def…
首先,考虑容斥,我们所要的答案是并集至少有\( k \)个数的方案数减去并集至少有\( k+1 \)个数的方案数加上并集至少有\( k \)个数的方案数-- 在n个数中选i个的方案数是\( C_{n}^{i} \),n种集合的组合方案数为\( 2^n \) 并集至少有i个元素的方案数即为选\( i \)个元素的方案数\( C_{n}^{i} \),乘上剩下\( n-i \)个元素任意组合的方案数\( 2^{2^{n-i}-1} \) 然后乘上容斥系数\( (-1)^{i-k} \),再乘上在并集…
如果\( b[i]==0 \)那么就是裸的费用流/KM,当然KM快一些但是为什么不写KM呢因为我不会打板子了 考虑二分答案,那么问题变成了判定问题. \[ ans=\frac {a_1+a_2+...+a_n}{b_1+b_2+...+b_n} \] \[ (b_1+b_2+...+b_n)*ans=a_1+a_2+...+a_n \] \[ b_1*ans-a_1+b_2*ans-a_2+...b_n*ans-a_n=0 \] 然后建立费用流模型,看每次是否\( ans\leq 0 \)即可.…
Description 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不同的)   Input 只有一行且为用空格隔开的两个非负整数 n 和 m,其含义如上所述.   对于 30%的数据 n≤100,m≤100   对于 100%的数据 n≤2000,m≤2000 Output 输出文件 output.txt 仅包含一个非负整数,表示不同的排法个数.注意答案可能很大.…