PS:这题满分100,没有做对,大家帮忙看看问题在哪/** 题目:水仙花数升级版 * 描述: 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)给你A和B,求[A,B]区间内有多少个水仙花数题目类别: 循环,查...
分类:
编程语言 时间:
2014-09-29 00:02:15
阅读次数:
267
#include
#include
using namespace std;
const int N = 100005;
struct Elem
{
long long height;
long long width;
int begin;
int count;
};
Elem stack[N];
int top;
int main()
{
int num, n;
long...
分类:
其他好文 时间:
2014-09-28 23:31:56
阅读次数:
300
1901: Zju2112 Dynamic Rankings
经典的带修改求区间第k小值问题
树套树模板,我是用的线段树套splay实现的,而且用的数组模拟的,所以可能空间略大,bzoj过了,zoj过不了。
思路很简单,用线段树维护区间,用splay维护区间内的权值,然后询问的时候,二分答案key,然后在区间内找小于key的数有多少个。
贴上模板:
#include
#include
#...
分类:
其他好文 时间:
2014-09-28 22:40:15
阅读次数:
305
Blocks
Time Limit: 5000MS
Memory Limit: 65536K
Total Submissions: 4250
Accepted: 1704
Description
Some of you may have played a game called 'Blocks'. There are n bloc...
分类:
其他好文 时间:
2014-09-28 22:22:45
阅读次数:
396
概要:对于维护信息具有单调性的性质或者问题可以转化为具有单调性质的模型的题,我们可以考虑用单调栈或单调队列。技巧及注意:技巧很多,只要能将问题转化为单调性问题,就好解决了。当维护固定长度的单调区间,我们考虑用单调队列,如【BZOJ】3314: [Usaco2013 Nov]Crowded Cows(...
分类:
其他好文 时间:
2014-09-28 20:52:25
阅读次数:
153
题意:有N个房间,M次操作。有两种操作(1)"1 a",表示找到连续的长度为a的空房间,如果有多解,优先左边的,即表示入住。(2)"2 b len",把起点为b长度的len的房间清空,即退房。三个数组分别记录 lsum区间左值 rsum区间右值 sum区间最大值。 1 #includ...
分类:
其他好文 时间:
2014-09-28 18:58:54
阅读次数:
270
题目大意:维护一个序列,提供三种操作:
1.将区间中每一个点的权值乘上一个数
2.将区间中每一个点的权值加上一个数
3.求一段区间的和对p取模的值
2631的超^n级弱化版,写2631之前可以拿这个练练手。。。
线段树区间修改,让学校的大神指导了一下ZKW的区间修改方法,很好理解,但是代码还是快不了。。。回头再改改代码吧 可能是我写的太渣了
#include
#include
#inc...
分类:
其他好文 时间:
2014-09-28 16:13:02
阅读次数:
184
复杂度:O(n*α(n)) 其中α(x),对于x=宇宙中原子数之和,α(x)不大于4 。(对于nocow里的复杂度我也是醉了)概要:并查集就是一个数组和一行话。应用:图的连通、集合操作、生成树的合并等技巧及注意:并查集是个好东西。维护区间+前缀和:对于一些连续的区间,我们要判断这些区间是否合法,带修...
分类:
其他好文 时间:
2014-09-28 14:42:02
阅读次数:
152
题目连接:hdu 3911 Black And White
题目大意:给定一个序列,然后有M次操作;
0 l r:表示询问l,r中最大连续1的个数1 l r:表示将l,r区间上的数取反
解题思路:线段树的一种题型,区间合并,因为有一个取反的操作,所以对于每个节点要维护6个值,包括连续0,1最长序列的长度,左边和右边的最长连续长度。需要注意的是,如果询问的区间最大值是从R[lson...
分类:
其他好文 时间:
2014-09-28 14:26:53
阅读次数:
174
题意 求给定区间[a,b] 所有整数的立方和 0
注意10000^3会爆int
#include
using namespace std;
typedef long long ll;
int main()
{
int cas;
ll a, b, ans;
scanf("%d", &cas);
for(int k = 1; k <= cas; ++k)
...
分类:
其他好文 时间:
2014-09-28 13:31:12
阅读次数:
184