复杂度分析,询问一千次,区间长1e6,O(1e9)超时。

那么我们知道对于差分来说,没必要一个一个求,只需要知道区间长就可以了,所以我们定义结构体差分节点,一个头结点,一个尾节点。

这样tail.loc-head.loc就是整个区间长,该区间的实际的大小就是 Add标记的大小,Add标记就是从头加到尾。

排序2*m个差分节点,对于loc相同的节点,说明是同一个位置的差分,add合并就可以了,不需要进行统计,直接跳过本次循环。

#include <bits/stdc++.h>
using namespace std;
const int maxn=2e3+10;
const int INF=0x3f3f3f3f;
int T,N,M,L,R; struct Node {
int loc,add;
}node[maxn]; bool cmp(const Node &a,const Node &b)
{
return a.loc<b.loc;
} long long getAns()
{
M*=2;
sort(node,node+M,cmp);
long long ans=0,tmp=0;
for (int i=0;i<M-1;i++) {
if (node[i].loc==node[i+1].loc) {
tmp+=node[i].add;
continue;
}
tmp+=node[i].add;
ans+=(tmp%2)*(node[i+1].loc-node[i].loc);
}
return ans;
} inline int read()
{
int f=1,num=0;
char ch=getchar();
while (ch>'9'||ch<'0') {
if (ch=='-') {
f=-1;
}
ch=getchar();
}
while (ch>='0'&&ch<='9') {
num=num*10+ch-'0';
ch=getchar();
}
return num*f;
} inline void print(int x)
{
if (x<0) {
putchar('-');
}
if (x>9) {
print(x/10);
}
putchar(x%10+'0');
} int main()
{
int kase=1;
//scanf("%d",&T);
T=read();
while (T--) {
N=read(),M=read();
//scanf("%d%d",&N,&M);
for (int i=0;i<2*M;i++) {
node[i].add=node[i].loc=0;
}
for (int i=0;i<M;i++) {
L=read(),R=read();
//scanf("%d%d",&L,&R);
node[i].loc=L;
node[i+M].loc=R+1;
node[i].add++;
node[i+M].add--;
}
printf("Case #%d: %lld\n",kase++,getAns());
}
return 0;
}

最新文章

  1. 第三条:用私有构造器或者枚举类型强化Singleton属性
  2. PHP定时备份MySQL,mysqldump语法大全
  3. SQLAutoCode - error when attempting to generate schema
  4. Android基础开发文档汇总
  5. Java数据库连接池
  6. NLTK中的词性
  7. Interpolated Strings
  8. Win2003+iis6部署MVC4网站的方法
  9. 职责链实现的apache.chain使用
  10. firebug js版
  11. Ubuntu 下对ADT 添加别名(alias)
  12. 手机APP测试思路及测试要点
  13. 使用命名管道的OVERLAPPED方式实现非阻塞模式编程 .
  14. Vue style 深度作用选择器 &gt;&gt;&gt; 与 /deep/(sass/less)
  15. 怎么在jquery里清空文本框的内容
  16. undefined和“undefined”
  17. Nginx - 日志格式及输出
  18. mpu6050 DMP库的移植
  19. 如何在Linux系统通过命令行生成随机文件
  20. Visual Studio 2013 boost

热门文章

  1. 高效完成R代码
  2. EF中的上下文(DbContext)简介
  3. 注释web.xml
  4. CentOS7.5升级OpenSSH
  5. 实用sql语句合集
  6. JS高级---函数作为参数使用
  7. scw——02错误initializationError(Runner:JUnit 4)
  8. 易错之 Java字符串比较
  9. AcWing 831. KMP字符串
  10. WOW Factor