ZOJ - 3961 Let's Chat(区间相交)】的更多相关文章

题意:给定一个长度为n的序列,A和B两人分别给定一些按递增顺序排列的区间,区间个数分别为x和y,问被A和B同时给定的区间中长度为m的子区间个数. 分析: 1.1 ≤ n ≤ 109,而1 ≤x, y ≤ 100,显然应该枚举区间. 2.具体操作为: (1)id1和id2分别指向A和B的第一个区间,若两区间相交,则求相交区间中长度为m的子区间个数. (2)若A指向的区间右边界<=B指向的区间右边界,则id1++,将A的下一个区间与B的该区间比较,依此类推. 3.求两区间的相交区间:分别取两区间左边…
题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3961 题意 给出两个人的发消息的记录,然后 如果有两人在连续M天及以上 互发消息,超过几天 加几点 友谊值 最后求 友谊值 思路 先把第一个 连续区间 >= M 的 存下来 然后第二次 输入的时候 去判断. AC代码 #include <cstdio> #include <cstring> #include <ctype.h> #…
http://codeforces.com/contest/612/problem/D 题目大意:给你n个区间,这n个区间会有相交的部分,如果一个区间相交的部分>=k,那么就把这个区间记录下来.且要求所记录的区间个数尽量少(换句话说就是区间尽量大),问有几个这样的区间,并且输出这样的区间. 思路一: 我之前的想法就是把所有的sort出来,然后用树状数组来求区间相交个数.但是这样子写出来以后可能会出现这样的区间,即[1,3][3,5],所以我们又要把这两个区间合并一下,所以合并的时候有需要使用线段…
有两个区间A[a1,b1], B[a2,b2],判断这两个区间有没有交集.我们可以分为两种思维来判断: /** *思路就是如果两个区间不相交,那么最大的开始端一定大于最小的结束端 **/ if(max(a1, a2) < min(b1, b2)){ return "有交集" }else{ return "无交集" } 给你两个区间[a, b]和[c, d],如果让你求出这两个区间的相交长度,你会怎么做呢? 不出意外的话,大多数同学就会进行分类讨论,看看那个区间…
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 descri…
地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3961 题目: 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 re…
题意:n个数字的串,每取出一个数字的代价为该数字和左右的乘积(1.n不能取),问最小代价 思路:dp[i][j]表示把i~j取到只剩 i.j 的最小代价. 代码: #include<set> #include<map> #include<cmath> #include<queue> #include<cstdio> #include<cstring> #include<algorithm> typedef long lon…
https://vjudge.net/problem/ZOJ-3469 题意:在一条直线上有一个餐厅和n个订餐的人,每个人都有随时间上升的不满意值,从餐厅出发,计算出送完时最小的不满意值总和. 思路:这道题和UVa 1632这道题目很像,只不过1632可以从任一点出发,而这题必须从餐厅出发.1632每个坐标几秒之后就会消失,这题是每分钟不满意值会上升,比较类似,都是挺不错的区间DP题. d[i][j][0]代表的是在送完i~j这个区间的最小不满意值,并且此时人处于左端,d[i][j][1]则是人…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3537 题目大意:给出一些点表示多边形顶点的位置,如果不是凸多边形(凸包)则不能切,直接输出"I can't cut."切多边形时每次只能在顶点和顶点间切,每切一次的花费为 cost(i, j) = |xi + xj| * |yi + yj| % p.问把多边形切成最多个不相交三角形的最小代价是多少. 解题思路:先求出凸包,接着可以用区间DP解决,设dp…
Cake Time Limit: 1 Second Memory Limit: 32768 KB You want to hold a party. Here's a polygon-shaped cake on the table. You'd like to cut the cake into several triangle-shaped parts for the invited comers. You have a knife to cut. The trace of each cut…