Japan plans to welcome the ACM ICPC World Finals and a lot of roads must be built for the venue. Japan is tall island with N cities on the East coast and M cities on the West coast (M <= 1000, N <= 1000). K superhighways will be build. Cities on each coast are numbered 1, 2, ... from North to South. Each superhighway is straight line and connects city on the East coast with city of the West coast. The funding for the construction is guaranteed by ACM. A major portion of the sum is determined by the number of crossings between superhighways. At most two superhighways cross at one location. Write a program that calculates the number of the crossings between superhighways.

 

Input

The input file starts with T - the number of test cases. Each test case starts with three numbers – N, M, K. Each of the next K lines contains two numbers – the numbers of cities connected by the superhighway. The first one is the number of the city on the East coast and second one is the number of the city of the West coast.

 

Output

For each test case write one line on the standard output:
Test case (case number): (number of crossings)

 

Sample Input

1
3 4 4
1 4
2 3
3 2
3 1
 

Sample Output

Test case 1: 5
  1. #include"iostream"
  2. #include"algorithm"
  3. #include"cstring"
  4. #include"cstdio"
  5. using namespace std;
  6. structxy
  7. {
  8. int x,y;
  9. }a[1000010];
  10. int c[1005];
  11. //long long int max;
  12. int cmp(const xy&a,const xy&b)
  13. {
  14. if(a.x!=b.x)
  15. return a.x<b.x;
  16. else
  17. return a.y<b.y;
  18. }
  19. int lowbit(int x)
  20. {
  21. return x&(-x);
  22. }
  23. void updata(int x,int d,int max)
  24. {
  25. while(x<=max)
  26. {
  27. c[x]+=d;
  28. x+=lowbit(x);
  29. }
  30. }
  31. long long int getsum(int x)
  32. {
  33. long long int res=0;
  34. while(x>0)
  35. {
  36. res+=c[x];
  37. x-=lowbit(x);
  38. }
  39. return res;
  40. }
  41. int main()
  42. {
  43. int i,t,p=0;
  44. scanf("%d",&t);
  45. while(t--)
  46. {
  47. int n,m,k,max;
  48. memset(c,0,sizeof(c));
  49. max=0;
  50. scanf("%d%d%d",&n,&m,&k);
  51. for(i=0;i<k;i++)
  52. {
  53. scanf("%d%d",&a[i].x,&a[i].y);
  54. if(a[i].y>max)
  55. max=a[i].y;
  56. }
  57. sort(a,a+k,cmp);
  58. long long int sum=0;
  59. updata(a[0].y,1,max);
  60. for(i=1;i<k;i++)
  61. {
  62. sum+=getsum(max)-getsum(a[i].y);
  63. updata(a[i].y,1,max);
  64. }
  65. printf("Test case %d: %lld\n",++p,sum);
  66. }
  67. return 0;
  68. }

Japan的更多相关文章

  1. POJ 3067 Japan(树状数组)

                                                                                  Japan   Time Limit: 10 ...

  2. POJ 3067 Japan

    Japan Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25489   Accepted: 6907 Descriptio ...

  3. cdoj 383 japan 树状数组

    Japan Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/383 Descrip ...

  4. Day 3 @ RSA Conference Asia Pacific & Japan 2016 (morning)

    09.00 – 09.45 hrs Tracks Cloud, Mobile, & IoT Security    A New Security Paradigm for IoT (Inter ...

  5. Day 4 @ RSA Conference Asia Pacific & Japan 2016

    09.00 – 09.45 hrs Advanced Malware and the Cloud: The New Concept of 'Attack Fan-out' Krishna Naraya ...

  6. POJ 3067 - Japan - [归并排序/树状数组(BIT)求逆序对]

    Time Limit: 1000MS Memory Limit: 65536K Description Japan plans to welcome the ACM ICPC World Finals ...

  7. poj3067 Japan(树状数组)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:id=3067">http://poj.org/problem? id=3067 Descri ...

  8. Japan POJ - 3067 转化思维 转化为求逆序对

    Japan plans to welcome the ACM ICPC World Finals and a lot of roads must be built for the venue. Jap ...

  9. cdojR - Japan

    地址:http://acm.uestc.edu.cn/#/contest/show/95 题目: R - Japan Time Limit: 3000/1000MS (Java/Others)     ...

随机推荐

  1. hdu 4738 Caocao's Bridges(桥的最小权值+去重)

    http://acm.hdu.edu.cn/showproblem.php?pid=4738 题目大意:曹操有一些岛屿被桥连接,每座都有士兵把守,周瑜想把这些岛屿分成两部分,但他只能炸毁一条桥,问最少 ...

  2. 简易的JQuery设置Cookie

    使用之前先引用这两个文件: 然后基本的功能代码如下: <div> <input id="txtDelValues" type="text" / ...

  3. NSInvocation Basics

    In this article I'm going to cover the basics and usages of NSInvocation. What is NSInvocation? Appl ...

  4. android: Incorrect line ending: found carriage return (\r) without corresponding newline (\n)

    当报这种错误的时候:Incorrect line ending: found carriage return (\r) without corresponding newline (\n) 解决方法: ...

  5. 通过SimpleAction显示一个listview

    private void simpleAction1_Execute(object sender, SimpleActionExecuteEventArgs e) { IObjectSpace os ...

  6. CentOS FireFox Flash Player

    yum install *firefox* yum install flash-plugin

  7. linq 动态排序,不使用反射

    之前网上搜索的相关方法都是使用了反射的方法来动态获取字段,以实现动态linq排序,但是因为项目组觉得此方法效率低下,所以不予采纳. 所以有了以下代码 public interface IBase{ d ...

  8. cocos2dx Http网络编程

    转自:http://blog.csdn.net/wangbin_jxust/article/details/9632771,http://blog.csdn.net/wangbin_jxust/art ...

  9. Java学习笔记之继承

    一.继承的基础 在Java术语中,被继承的类叫超类(superclass)或者父类,继承超类的类叫子类(subclass). 举例说明: class Box { public double width ...

  10. influxDB学习总结

    1.安装 请参考http://www.cnblogs.com/zhja/p/5996191.html, 安装完毕运行influxd,http://域名:8083为控制台界面:http://域名:808 ...