[BZOJ 2298] Problem A】的更多相关文章

Link: BZOJ 2298 传送门 Solution: 可以将每个人的话转化为$[l[i],r[i]]$的人得分相同 用$map$记录认为$[i,j]$相同的人数,$pos[i][j]$记录以$i$为右边界的左边界的可能取值 令$dp[i]$表示前$i$名中说真话的最多人数, 那么$dp[i]=max\{ dp[pos[i][j]-1]+min(i-pos[i][j]+1,mp[P(pos[i][j],i)])\}$ 一定要记得取$min$,毕竟多出来的人也一定没说真话 Code: #inc…
题意:一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) 思路:考虑最多有多少人说真,那么答案就是n-max. ai个人分数比他高,bi个人分数比他低,说明[bi+1,n-ai]里面的人分数相同. 用map维护某个区间是否相同. #include<algorithm> #include<cstdio> #include<cmath> #include<cstring> #includ…
首先我们来看一道题  BZOJ 2301 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 Output 14 3 HI…
2298: [HAOI2011]problem a Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=2298 Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n,接下来n行每行两个整数,第i+1行的两个整数分别代表ai.bi Outp…
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…
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≤ai.bi≤n Source 首先我们需要对问题进…
Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n,接下来n行每行两个整数,第i+1行的两个整数分别代表ai.bi Output 一个整数,表示最少有几个人说谎 Sample Input 32 00 22 2Sample Output1HINT 100%的数据满足: 1≤n≤100000   0≤ai.bi≤n 思路:很明显,有x人比他成绩好,y个人比他成绩差,那剩下…
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=2301 冬令营听了莫比乌斯,这就是宋老师上课讲的例题咯[今天来实现一下] #include<cstdio> #include<cstring> #include<algorithm> using namespace std; inline int in(){ ;char ch=getchar(); ') ch=getchar(); +ch-',ch=getchar…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2301 题意:每次给出a,b,c,d,K.求有多少数对(x,y)满足a<=x<=b,c<=y<=d且Gcd(x,y)=K? 思路: i64 mou[N];i64 a,b,c,d,k; void init(){    i64 i,j;    for(i=2;i<N;i++) if(!mou[i])    {        mou[i]=i;        for(j=i…
http://www.lydsy.com/JudgeOnline/problem.php?id=2301 题意:给a,b,c,d,k,求gcd(x,y)==k的个数(a<=x<=b,c<=y<=d) 思路:假设F(a,b)代表gcd(x,y)==k 的个数(1<=x<=a,1<=y<=b) 那么这是满足区间加减的 ans=F(b,d)-F(b,c)-F(a,d)+F(a,c) 剩下的就和Zap一样了 #include<algorithm> #in…