【[HAOI2011]Problem c】】的更多相关文章

好题啊 先考虑一些如何判掉无解的情况 我们开一个桶,存一下每个编号有多少个人必须选,之后做一个后缀和,之后我们扫一遍,如果一旦有一个后缀和\(pre[i]\)超过\(n-i+1\)就不合法了,因为我们在\([i,n]\)这里要安排的人已经超过\(n-i+1\)也就是这个区间的容纳范围了,所以这样放下去肯定会导致超掉,于是就不合法啦 之后我们搞一个\(dp\),设\(dp[i][j]\)表示从\([i,n]\)这些个编号里安排了\(j\)个人(不算那些提前预定好的人)的方案数之后带上一个组合数转移…
Description 求有多少个数对 \((x,y)\) ,满足$ a \leq x \leq b$ ,\(c \leq y \leq d\) ,且 \(\gcd(x,y) = k\),\(\gcd(x,y)\)函数为 \(x\) 和 \(y\) 的最大公约数.多组询问.\(a,b,c,d,k,T \leq 50000\) Solution 莫比乌斯反演的经典题目QAQ 首相将问题转化成前缀上的问题.即需要求出 有多少个数对 \((x,y)\) ,满足$ 1 \leq x \leq a$ ,\…
2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 4032  Solved: 1817[Submit][Status][Discuss] Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数n,接下来n行每行五个整数,分别表示a.b.c.d.k Outp…
[BZOJ2301][HAOI2011]Problem B(莫比乌斯反演) 题面 Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数n,接下来n行每行五个整数,分别表示a.b.c.d.k Output 共n行,每行一个整数表示满足要求的数对(x,y)的个数 Sample Input 2 2 5 1 5 1 1 5 1 5 2 Sample Outp…
[BZOJ2302][HAOI2011]Problem C(动态规划) 题面 BZOJ 洛谷 题解 首先如果\(m=0\)即没有特殊限制的话,那么就和这道题目基本上是一样的. 然而这题也有属于这题的性质,发现座位数和人数是一样的. 那么一种方案是合法的,当且仅当编号小于等于这个位置\(i\)的人数不小于\(i\). 首先把不合法直接判掉,考虑存在合法状态的情况. 设\(f[i][j]\)表示有\(j\)个人的编号小于等于\(i\)的方案数.显然\(i\le j\). 考虑如何转移,我们显然从\(…
2298: [HAOI2011]problem a Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1326  Solved: 637 Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n,接下来n行每行两个整数,第i+1行的两个整数分别代表ai.bi Output 一个整数,表示最少有几个人说谎 Sample Input…
[BZOJ2298][HAOI2011]problem a Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n,接下来n行每行两个整数,第i+1行的两个整数分别代表ai.bi Output 一个整数,表示最少有几个人说谎 Sample Input 3 2 0 0 2 2 2 Sample Output 1 HINT 100%的数据满足: 1≤n≤100000   0≤…
Part0 广告(当然没有广告费) P.S. 这篇文章是边学着边用Typora写的...学完了题A了blog也就呼之欲出了~有latex化式子也非常方便...非常建议喜欢Markdown的dalao们下载个~ Part1 莫比乌斯函数&&莫比乌斯反演 最近一直在做数论不是OvO 然后就一直有莫比乌斯反演这个坑没有填OvO 其实PoPoQQQ的课件已经看过不少遍了OvO 但是数论这东西不动手化式子还是不行的OvO 或许是我菜? 没错,莫比乌斯就是发现那个奇怪的扭曲的环的男人... 对于两个函…
题目:ZOJ Problem Set - 2297 Survival 题意:给出一些怪,有两个值,打他花费的血和能够添加的血,然后有一个boss,必须把小怪全部都打死之后才干打boss,血量小于0会死.也不能大于100. 分析:定义状态:dp[st].表示在 st 状态下的血量. 然后转移:dp[st] = max (dp[st].dp[st&~(1<<i )]+p[i].first - p[i].second); 注意初始化的时候必须在開始初始化,否则easy出错. #include…
[牛客网]Whalyzh's Problem 每个\(b_{i,j}\)建一个点,认为选了\(b_{i,j}\)一定会选\(a_{i}\)和\(a_{j}\) 选了\(a_{i}\)的话会带了一个\(-b_{i,i}\)的价值 然后再用01分数规划二分答案,选了\(a_{i}\)还会带来\(-x\)的代价,x是二分的答案 如果正数值减最大流大于0认为这个答案可以达到 #include <bits/stdc++.h> #define fi first #define se second #def…