题目链接:http://acm.fzu.edu.cn/problem.php?pid=2203 二分答案,即二分m表示第m个不会被击中,那么被击中的炮弹为第m+1个。每次check就行了。 ...
分类:
其他好文 时间:
2017-06-16 14:17:40
阅读次数:
100
SPOJ COWPIC 题目链接 题意:一个序列,相邻能够交换。问最少交换几次使得变成循环的1-n的当中一种 思路:对于原来正常的变换成1-n而言,答案就是逆序对了,而多了这么一个变形,事实上仅仅须要考虑一下。先求出变换成1-n的逆序对,然后假设原序列变成2, 3, 4 ... n, 1的话。等于是 ...
分类:
其他好文 时间:
2017-06-07 20:49:43
阅读次数:
136
T1:给定不同的N,求数列的最大公约数是多少. 数学推导可知答案是2*lowbit(n) so: T2:编号为1~n的点,其i到j的距离为i和j的最小公倍数。求使图联通的最小代价是多少? 都向1连边肯定是最优的。 so: T3: ...
分类:
其他好文 时间:
2017-06-04 11:40:12
阅读次数:
186
题意:给出对容器的总操作次数n, 接下来是这n个操作。这里对于一个容器提供三种操作, 分别是插入、删除和查找。输入0 e表示插入e、输入1 e表示删除e,若元素不存在输出No Elment!、输入2 e k表示查找比e大且第k大的数, 若不存在则输出Not Find! 分析:这里考虑树状数组做的原因 ...
分类:
编程语言 时间:
2017-05-29 01:00:05
阅读次数:
254
【算法】离散化+树状数组(求逆序对) 【题解】经典,原理是统计在i之前插入的且值≤i的个数,然后答案就是i-getsum(i) #include<cstdio> #include<algorithm> #include<cstring> #define lowbit(x) x&(-x) using ...
分类:
其他好文 时间:
2017-05-28 19:37:05
阅读次数:
191
修改 void change(int i, int j, int delta){ A[i][j] += delta; for(int x = i; x < A.length; x += lowbit(x)) for(int y = j; y < A[i].length; y += lowbit(y) ...
分类:
编程语言 时间:
2017-05-25 23:33:07
阅读次数:
329
Day1 4813: [Cqoi2017]小Q的棋盘 树形背包DP。 1 #include <cstdio> 2 3 #define maxn 110 4 #define R register 5 #define cmax(_a, _b) (_a < (_b) ? _a = (_b) : 0) 6 ...
分类:
其他好文 时间:
2017-05-20 11:21:29
阅读次数:
284
c为树状数组,c[i]存储i-lowbit[i]+1到i的数组的值 c[x+ lowbit(x)]为c[x]的父亲节点 http://cogs.pro/cogs/problem/problem.php?pid=264 ...
分类:
编程语言 时间:
2017-05-17 22:12:42
阅读次数:
154
原题传送门。。(9018上不去。明天再来搞。) 首先,这道题目是一道神奇的题。 看到这道题,第一眼就觉得2个数组排个序,然后一一对应的时候一定差值最小。 由于我们可以将这2个数列同时进行调换。 所以我们先把2个数列排个序。 第二个序列中的数组的下标都指向第一个数组中的数的原来位置(其实就是离散化(真 ...
分类:
编程语言 时间:
2017-05-12 23:13:48
阅读次数:
243
树状数组整理 update 更新 1.单点更新,将第p个数增加v 2.区间更新,将区间[x,y]增加v 或者直接在输入时加上这两行代码,下面有 附:单点改变,将第p个数变成v,还要定义一个储存初始值的数组a。 query 查询 1.单点查询,查询第p个点的值 2.区间查询,查询区间[x,y]的值 ( ...
分类:
编程语言 时间:
2017-05-09 17:42:35
阅读次数:
283