- 博客(6)
- 资源 (2)
- 收藏
- 关注
原创 Codeforces Beta Round #1 A B C
A. Theatre Square题目大意:给定n*m的正方形广场和a*a的砖,求最少要用多少砖才给覆盖整个广场。解题思路:就是算在M边占据几个a,之后和N边占据几个a乘一下就好了, Answer = ceil(m/a) * ceil(n/a)。#include#include#includeusing namespace std;long long n,m,a,ans
2013-01-31 17:10:17 336
原创 hdu 1754 I hate it
解题思路:此题就是树状数组求最大值的模版题。按照实际效果树状数组比线段树的时间更少些~编程复杂度更小。Problem : 1754 ( I Hate It ) Judge Status : AcceptedRunId : 7538799 Language : G++ Author : CherryChouCode Render Status : Rendered
2013-01-24 11:45:27 369
转载 树状数组求区间最大值一类问题
树状数组(Binary Index Tree)利用二进制的一些性质巧妙的划分区间,是一种编程,时间和空间上都十分理想的求区间和的算法,同样我们可以利用树状数组优美的区间划分方法来求一个序列的最值约定以 num[] 表示原数组, 以 idx[] 表示索引数组, Lowbit(x)=x&(-x) 树状数组求和时通过构造数组 idx[] 使 idx[k]=sum(num[tk]), tk
2013-01-24 08:44:05 1039
原创 hdu 1394 Minimum Inversion Number
/*思路:求逆序数: 树状数组解决:就是逆向扫描原序列,扫描到a[i]时,累加在其后面a[i+1..N]中 小于它的个数 = sum(a[i]-1); 树状数组中逆向插入元素,当插入p[i]时,明显与它构成逆序数对的数量就等于树状数组[1..p[i]-1]这个区间的和 循环轮换的可以用数学方法O(1)求出. 单个case时间复杂度: O(NlogN)*
2013-01-23 09:06:12 286
原创 hdu 1166 敌兵布阵
第一道树状数组。题很水。继续下一道。。。让我疑惑在这。。。#include#include#include#includeusing namespace std;int n;int a[50010],p[50010];//a树状数组 int lowb(int t){return t&(-t);}void add(int i,int v){ for(;
2013-01-21 10:48:02 275
原创 hdu 1013 Digital Roots
水题。不解释。#include#include#includeusing namespace std;int main(){ int n; string s; while(cin>>s&&s[0]!='0'){ n=0; for(int i=0;i n+=s[i]-'0'; while(n>9) n
2013-01-21 09:20:54 247
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人