比赛 [不是Rapiz出的]农场主钦定NOIP模拟赛1 评测结果 TTTTTTTTTT
题目名称 Color the Axis 最终得分 0
用户昵称 jjky 运行时间 10.042 s
代码语言 C++ 内存使用 2.03 MiB
提交时间 2016-11-08 21:26:30
显示代码纯文本
  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<iostream>
  4. #include<algorithm>
  5. #include<cstring>
  6. #define LEN 200010
  7. using namespace std;
  8. int e[LEN],n,m,l,r,sum,d[LEN];
  9. bool a[LEN];
  10. /*int lowbit(int k)
  11. {
  12. return k&(-k);
  13. }
  14. void add(int k,int v)//在第k上加上v;
  15. {
  16. while(k<LEN)
  17. {
  18. e[k]+=v;
  19. k+=lowbit(k);
  20. }
  21. }
  22. int sum1(int k)//求前k项和;
  23. {
  24. int re=0;
  25. while(k>0)
  26. {
  27. re+=e[k];
  28. k-=lowbit(k);
  29. }
  30. return re;
  31. } */
  32. int read()
  33. {
  34. int x=0;
  35. char ch;
  36. ch=getchar();
  37. while(ch<'0'||ch>'9')
  38. ch=getchar();
  39. while(ch>='0'&&ch<='9')
  40. {
  41. x=x*10+ch-'0';
  42. ch=getchar();
  43. }
  44. return x;
  45. }
  46. int main()
  47. {
  48. freopen("Axsi.in","r",stdin);
  49. freopen("Axsi.out","w",stdout);
  50. n=read();m=read();
  51. sum=n;
  52. memset(a,true,sizeof(a));
  53. for(int i=1;i<n;i++)
  54. d[i]=i+1;
  55. while(m--)
  56. {
  57. l=read();
  58. r=read();
  59. int temp;
  60. for(int i=l;i<=r&&i<=n&&i>=1;temp=i,i=d[i],d[temp]=max(r+1,d[temp]))
  61. {
  62. if(a[i])
  63. {
  64. a[i]=false;
  65. sum--;
  66. }
  67. //cout<<i<<" ";
  68. }
  69. cout<<sum<<endl;
  70. }
  71. return 0;
  72. }
  73. /*
  74. 10 3
  75. 3 3
  76. 5 7
  77. 2 8
  78.  
  79. 9
  80. 6
  81. 3
  82.  
  83. 10 10
  84. 1 3
  85. 2 5
  86. 4 9
  87. 1 7
  88. 2 6
  89. 3 7
  90. 5 9
  91. 2 8
  92. 5 8
  93. 1 10
  94.  
  95. */