Let's Chat
来源:互联网 发布:nodejs js-xlsx的文档 编辑:程序博客网 时间:2024/05/16 18:11
ACM (ACMers' Chatting Messenger) is a famous instant messaging software developed by Marjar Technology Company. To attract more users, Edward, the boss of Marjar Company, has recently added a new feature to the software. The new feature can be described as follows:
If two users, A and B, have been sending messages to each other on the last m consecutive days, the "friendship point" between them will be increased by 1 point.
More formally, if user A sent messages to user B on each day between the (i - m + 1)-th day and the i-th day (both inclusive), and user B also sent messages to user A on each day between the (i - m + 1)-th day and the i-th day (also both inclusive), the "friendship point" between A and B will be increased by 1 at the end of the i-th day.
Given the chatting logs of two users A and B during n consecutive days, what's the number of the friendship points between them at the end of the n-th day (given that the initial friendship point between them is 0)?
Input
There are multiple test cases. The first line of input contains an integer T (1 ≤ T ≤ 10), indicating the number of test cases. For each test case:
The first line contains 4 integers n (1 ≤ n ≤ 109), m (1 ≤ m ≤ n), x and y (1 ≤ x, y ≤ 100). The meanings of n and m are described above, while x indicates the number of chatting logs about the messages sent by A to B, and y indicates the number of chatting logs about the messages sent by B to A.
For the following x lines, the i-th line contains 2 integers la, i and ra, i (1 ≤ la, i ≤ ra, i ≤ n), indicating that A sent messages to B on each day between the la, i-th day and the ra, i-th day (both inclusive).
For the following y lines, the i-th line contains 2 integers lb, i and rb, i (1 ≤ lb, i ≤ rb, i ≤ n), indicating that B sent messages to A on each day between the lb, i-th day and the rb, i-th day (both inclusive).
It is guaranteed that for all 1 ≤ i < x, ra, i + 1 < la, i + 1 and for all 1 ≤ i < y, rb, i + 1 < lb, i + 1.
Output
For each test case, output one line containing one integer, indicating the number of friendship points between A and B at the end of the n-th day.
Sample Input
210 3 3 21 35 810 101 810 105 3 1 11 24 5
Sample Output
30
Hint
For the first test case, user A and user B send messages to each other on the 1st, 2nd, 3rd, 5th, 6th, 7th, 8th and 10th day. As m = 3, the friendship points between them will be increased by 1 at the end of the 3rd, 7th and 8th day. So the answer is 3.
题意:a和b互相发送消息,a和b在同一天都发送给对方消息,才有效,规定某一天的前m天a和b都互相发送消息了,那么称这一天为特殊的,求一共有几个特殊的天,如 1 2 3 4 5 6 都互发了消息,m为3 则 3 4 5 6 都是特殊的天,输出4.
输入:发送消息的最后一天,m,a发消息的次数,b发消息的此时
a第1次发消息的开始天和结束天
a第2次发消息的开始天和结束天
.
.
b第1次发消息的开始天和结束天
b第2次发消息的开始天和结束天
.
.
第i+1次的开始天>第i次的结束天(第i+1次的开始天有可能是第i次的结束天的后一天)
#include<bits/stdc++.h>using namespace std;struct st{ int ks,js;};int main(){ int T; scanf("%d",&T); while(T--) { int n; st a[210]; st b[210]; int t; int la,lb; int s=0; scanf("%d%d%d%d",&n,&t,&la,&lb); scanf("%d%d",&a[0].ks,&a[0].js); int ta,tb; ta=1; tb=1; for(int i=1;i<la;i++) { int k,j; scanf("%d%d",&k,&j); if(k==a[ta-1].js+1) a[ta-1].js=j; else a[ta].ks=k,a[ta].js=j,ta++; } scanf("%d%d",&b[0].ks,&b[0].js); for(int i=1;i<lb;i++) { int k,j; scanf("%d%d",&k,&j); if(k==b[tb-1].js+1) b[tb-1].js=j; else b[tb].ks=k,b[tb].js=j,tb++; } int s1; for(int i=0;i<ta;i++) for(int j=0;j<tb;j++) { if(a[i].ks>=b[j].ks&&a[i].js>=b[j].js) s1=b[j].js-a[i].ks; else if(a[i].ks>=b[j].ks&&a[i].js<=b[j].js) s1=a[i].js-a[i].ks; else if(a[i].ks<=b[j].ks&&a[i].js<=b[j].js) s1=a[i].js-b[j].ks; else if(a[i].ks<=b[j].ks&&a[i].js>=b[j].js) s1=b[j].js-b[j].ks; s1++; if(s1>=t) s=s+s1-t+1; } printf("%d\n",s); } return 0;}
- Let's Chat
- Let's Chat
- ZOJ3961 Let's Chat
- Let's Chat(区间)
- ZOJ3961-Let's Chat
- Let's Chat
- 省赛D Let's Chat
- ZOJ 3961 Let's Chat
- 【ZOJ 3961 Let's Chat】
- zoj 3961 Let's Chat
- ZOJ 3961Let's Chat
- 浙江省赛 D Let's Chat
- ZOJ 3961 Let's Chat (双指针 + 区间交)
- 2017 浙江省赛 C What Kind of Friends Are You + D Let's Chat
- 浙江省第十四次ACM程序竞赛 Let's Chat(D题)
- ACM刷题之ZOJ————Let's Chat
- Let's Pee
- 坚定不移,let's go--------
- Python针对特定服务定制的代理工具V2.0------(proxyHandler.py)
- 51nod 1117 聪明的木匠
- Illegal use of <when>-style tag without <choose> as its direct parent
- 洛谷11月月赛Round2订正
- 时间序列简单介绍
- Let's Chat
- HTTPS通信总结
- 第八届蓝桥杯日期问题
- Windows Server 2008 配置ODBC
- Unity 查看所有GUI默认样式
- Webstorm设置Node.js智能提示
- 新浪微博2017前端笔试题
- Python3的切片
- C++多继承与虚基类