2298: [HAOI2011]problem a
Description
一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低。”问最少有几个人没有说真话(可能有相同的分数)
这句话的意思就等于是说第i个人的排名是\(a_i\)有\(n-a_i-b_i\)个人和他的分一样
然后直接上树状数组啊
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define M 500000
using namespace std;
int n,m,k,c[M],f[M],ans;
struct vv
{
int a,b,c;
} s[M];
bool cmp(vv c,vv d)
{
return (c.a!=d.a?c.a<d.a:c.b<d.b);
}
void add(int x,int k){for(int i=x;i<=n;i+=i & -i) c[i]=max(c[i],k);}
int ask(int x){int ans=0; for(int i=x;i>0;i-=i & -i) ans=max(ans,c[i]); return ans;}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&s[i].a,&s[i].b);
s[i].b=n-s[i].a-s[i].b; s[i].c=1;
}
sort(s+1,s+1+n,cmp);
for(int i=1;i<=n;i++) if(s[i].c)
{
int j=i+1;
while(s[i].a==s[j].a && s[i].b==s[j].b) s[i].c+=1, s[j].c=0, j+=1;
s[i].c=min(s[i].c,s[i].b);
}
for(int i=1;i<=n;i++) if(s[i].c)
{
m=ask(s[i].a); k=m+s[i].c; ans=max(ans,k);
add(s[i].a+s[i].b,k);
}
printf("%d",n-ans);
}
2298: [HAOI2011]problem a的更多相关文章
- BZOJ 2298: [HAOI2011]problem a 动态规划
2298: [HAOI2011]problem a Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnli ...
- 【BZOJ 2298】 2298: [HAOI2011]problem a (DP)
2298: [HAOI2011]problem a Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1326 Solved: 637 Descript ...
- bzoj 2298: [HAOI2011]problem a
Description 一次考试共有n个人参加,第i个人说:"有ai个人分数比我高,bi个人分数比我低."问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n ...
- BZOJ 2298: [HAOI2011]problem a【动态规划】
Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n,接下来n行每行两个 ...
- BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 4032 Solved: 1817[Submit] ...
- bzoj 2301: [HAOI2011]Problem b
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MB Submit: 3757 Solved: 1671 [Submit] ...
- HAOI2011 problem b
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 1047 Solved: 434[Submit][ ...
- BZOJ 2301: [HAOI2011]Problem b 莫比乌斯反演
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 1007 Solved: 415[Submit][ ...
- 2301: [HAOI2011]Problem b
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 4164 Solved: 1888[Submit] ...
随机推荐
- 音频播放时出现 Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first. https://goo.gl/xX8pDD
<audio id="play" controls="controls" loop="loop"> <source src ...
- EF 求和 GroupBy多个字段
GroupBy根据多个字段分组使用方式: 一.使用扩展方法 query.GroupBy(q => new { q.Year, q.Month }) .Select(q => new { Y ...
- [android] 手机卫士输入框抖动和手机震动
查看apiDemos,找到View/Animation/shake找到对应的动画代码,直接拷贝过来 当导入一个项目的时候,报R文件不存在,很多情况是xml文件出错了 Animation shake = ...
- 在Oracle中实现每日表备份并删除7天前的备份表
不用闪回技术,因为业务想眼睁睁的看到备份表,而不是让DBA搞一通之后,才能看到备份数据表 OK,那好办了,写个存储过程解决你的需求,每天建个新表,把数据备份进去,业务人员可以看到这些每天的备份表 然后 ...
- 【转】android系统常用URI
android系统管理联系人的URI如下:ContactsContract.Contacts.CONTENT_URI 管理联系人的UriContactsContract.CommonDataKinds ...
- drop,truncate,delete 区别
一.SQL中的语法 1.drop table 表名称 eg: drop table dbo.Sys_Test 2.truncate table 表 ...
- python实现贪婪算法解决01背包问题
一.背包问题 01背包是在M件物品取出若干件放在空间为W的背包里,每件物品的体积为W1,W2至Wn,与之相对应的价值为P1,P2至Pn.01背包是背包问题中最简单的问题.01背包的约束条件是给定几种物 ...
- MySQL入门详解(一)---mysql的语言
MySQL语言分为:DCL(数据库控制语言).DDL(数据库定义语言).DQL(数据库查询语言).DML(数据库操作语言),这一节我们先从mysql的语言开始. DCL:数据库控制语言,用来设置数据库 ...
- 使用Apache php 的一些基本操作(一)
切换目录命令:(就可以在www文件夹里面操作了) cd /var/www/html 新建一个文件: sudo vim info.php (这里出现了一个问题,sudo: vim: command no ...
- C# Newtonsoft.Json反序列化为dynamic对象之后的使用
通过Newtonsoft.Json将一个json类型的字符串反序列化为dynamic后直接使用报错 源代码: namespace ConsoleApplication1 { class Program ...