A Simple Problem with Integers
:模板题,区间查询区间更新
#include
#include
#include
#include
#include
#include
#include
#include
Star
题意:定义星星的等级为在它左下角(包括正左和正下)的星星的个数。给出若干个星星的坐标(不超过15000个),输出各个等级的星星分别有多少个。每个星星的坐标不超过32000,输入时按照Y坐标升序输入
思路:这个题目的数据已经不需要你去排序了,都是给好了的,Y坐标已经给定了升序,那我们只要考虑X就行了,每次我们只需要查询X坐标小于等于当前X的即可,注意给的x,y是从0开始的,所以全都++就好了。
#include
#include
#include
#include
#include
#include
#include
#include
Cows
题意:对于每头牛,吃草的区间在li,ri之间,问在n头牛中,对于第i头牛而言,有几头牛的区间大于这头牛
思路:对于给定的区间进行排序,先按左边界从小到大排序,如果左边界相同,按右边界从大到小排序,这样的话对于一头新来的牛,前面的牛左边界都比他小,所以只要查询有多少大于等于他右边界的即可,注意边界相同的牛即可。
#include
#include
#include
#include
#include
#include
#include
#include
Japan
题意:一个平面,左边自上而下排列了N个点,标号为1,...,N,右边自上而下排列了M个点,标号为1,...,M,它们之间有K条线段相连,每条线段有两个值:x,y,表示该线段连接了左边的标号为x的点和右边的标号为y的点,问有多少个交点(除最初的点外)?
思路:这道题,想一想其实也是排序啦,保证x是递增的,然后对于新来的一条边,我们查询有多少y端点是大于当前的y的,所以我们只需要维护y端点即可。
#include
#include
#include
#include
#include
#include
#include
#include
Lost Cows
题意:n头牛,每头牛有[1,n]的独立的编号,现在这些牛杂乱的站在一排,给出在第i头牛之前,并且比第i头牛编号小的个数,i属于2到n。求解现在的每头牛的编号
思路:我们从后往前考虑即可,其实最后一头牛的id都是可以直接确定的,贪心递推即可,点然我们也许可以用树状数组,我是直接用的别人的了,也是从后往前考虑,然后二分当前牛的编号,通过前面比它小的牛和后面比它小的牛来判断即可,树状数组维护的就是当前牛后面比它小的数字。最终该牛的id 是要满足id-1=k(前边比他小的数字个数,已知)+num(后面比它小的数字,树状数组维护)。
//贪心
#include
#include
#include
#include
#include
#include
#include
#include
//树状数组
#include
#include
#include
#include
#include
#include
#include
#include
Mobile phones
题意:有一个矩阵(初始化为0),给出一些操作:
1 x y a表示在arr[x][y]加上a;
2 l b r t 表示求左上角为(l,b),右下角为(r,t)的矩阵的和。
思路:二维树状数组裸题。单点修改+区间查询。
#include
#include
#include
#include
#include
#include
#include
#include