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. 转】Spark DataFrames入门指南:创建和操作DataFrame

    原博文出自于: http://blog.csdn.net/lw_ghy/article/details/51480358 感谢! 一.从csv文件创建DataFrame 本文将介绍如何从csv文件创建 ...

  2. Python 代码性能优化技巧(转)

    原文:Python 代码性能优化技巧 Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化. ...

  3. MVC中过虑特殊字符检测

    [ValidateInput(false)] [HttpPost] public ActionResult Modify(Models.BlogArticle model) { //...... } ...

  4. 移动Web单页应用开发实践——页面结构化

    1. 前言 在开发面向现代智能手机的移动Web应用的时候,无法避免一个事实,就是需要开发单页应用(Single Page WebApp).对于不同的系统需求,单页应用的粒度会不同,可能是整个系统都使用 ...

  5. MYSQL数据库性能调优之三:explain分析慢查询

    explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句.使用方法,在select语句前加上explain就可以了. 一.explain ...

  6. 20140102-lua binder另一只轮子的雏形

    书接上一回,说到要继续丰富对类型的处理.那么如何才能做到呢,应该是要支持自定义的,所以这一回要讲的就是在前面的基础上,增加支持自定义部分,其中包含以下几个部分 函数的默认参数设置,包括有几个默认参数和 ...

  7. d3d导致cairo不正常

    最近要把cairo集成到项目中,却发现cairo不能工作了 折腾了两天才找到了原因:cairo的一个trick导致浮点数计算错误: http://blog.163.com/lvan100@yeah/b ...

  8. Redis操作命令

    1)连接操作命令    quit:关闭连接(connection)    auth:简单密码认证    help cmd: 查看cmd帮助,例如:help quit        2)持久化    s ...

  9. 为什么要尽量少使用iframe

    Iframes 阻塞页面加载 及时触发 window 的 onload 事件是非常重要的.onload 事件触发使浏览器的 “忙” 指示器停止,告诉用户当前网页已经加载完毕.当 onload 事件加载 ...

  10. 快速找到跟踪其他session产生的trc文件

    掌握该技术最根本的是需要搞清楚session跟踪文件存放的路径和生成跟踪文件的命名规则,不然,在已经存在成全上万trc文件的生产环境中,要想快速正确的找到跟踪其他SESSION产生的trc文件就如大海 ...