分析:分析当整除(a+b)的时候肯定是后者胜利,如果余数不等于0的时候,如果余数大于b肯定是前者胜利,否则后者胜利。
代码:
import java.math.*;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner cin = new Scanner(...
分类:
其他好文 时间:
2014-10-06 23:57:11
阅读次数:
246
树状数组有两种情况:插点问线和插线问点。这道题是插线问点。
因为树状数组最简单的作用是计算1~x的和,所以给出(a, b, c),表示(a,b)区间增加c, 那我们只需要在a点原来的基础上增加c,然后在b点原来的基础上更新-c,这样我们算最终结果的时候在(a, b)之间的就是增加了c,在区间之外的就是没有增加。
代码:
#include
#include
#define M 100000...
分类:
其他好文 时间:
2014-10-06 23:25:31
阅读次数:
184
分析:这道题因为是更新是和询问分开的,所以我们先更新,然后在将c[i]表示成1~i之间的和,之后减一下就好了。
#include
#include
#define M 1000005
#define INF 10003
int c[M];
int main(){
int x, y, z, n, s, q;
scanf("%d%d%d", &n, &s, &q);
memset(c,...
分类:
其他好文 时间:
2014-10-06 22:34:51
阅读次数:
158
这道题其实就是考试树状数组。
代码:
#include
#include
int c[1005];
int lowbit(int x){
return x&(-x);
}
int getsum(int x){
int sum = 0;
while(x){
sum += c[x]; x -= lowbit(x);
}
return sum;
}
void add(int ...
分类:
其他好文 时间:
2014-10-06 22:17:02
阅读次数:
123
经典贪心;
两种方案:一:让最快的和次最快的先过去,最快的回来,然后最慢的和次最慢的过去,次最快的回来a[0]+a[1]+a[1]+a[n-1]
二:最快的和最慢的过去,最快的回来,最快的和当前最慢的过去,最快的回来。a[0]+a[n-1]+a[0]+a[n-2]
每次取最优解。
注意:最后剩余没过的人小于等于3的时候,要特殊判断。
代码:
#include
#include
#i...
分类:
其他好文 时间:
2014-10-06 21:42:11
阅读次数:
194
最少乘法次数
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如24:2*2=22(第一次乘),22*22=24(第二次乘),所以最少共2次;
输入第一行m表示有m(1
每一组测试数据有一整数n(0输出输出每组测试数据所需次数s;...
分类:
其他好文 时间:
2014-10-06 12:46:40
阅读次数:
431
Kiki & Little Kiki 2
时间限制:5000 ms | 内存限制:65535 KB
难度:4
描述There are n lights in a circle numbered from 1 to n. The left of light 1 is light n, and the left of light
k (1
Change the st...
分类:
其他好文 时间:
2014-10-05 15:25:28
阅读次数:
344
/*
关键点:海伦公式
解题人:lingnichong
解题时间:2014-10-04 21:48:47
解题体会:海伦公式的使用
*/
三角形
时间限制:1000 ms | 内存限制:65535 KB
难度:1
描述
在数学中,如果知道了三个点的坐标,我们就可以判断这三个点能否组成一个三角形;如果可以组成三角形,那么我们还可以求出这个三角形的面积...
分类:
其他好文 时间:
2014-10-05 00:12:27
阅读次数:
323