题目分析:
给你N个人的队列,每个人都有想站的位置,要你从前往后的给他们排序,输出最后的结果。注意,后面的人会覆盖前面的。就是是原本在该位置上的人往后移动一个位置。
算法分析:
我们可以把总人数当作区间的大小,然后结果就是把区间的每一个位置都放上人,就是答案了。
而从题目中我们可以知道,后面的人是不受前面的人的影响的。所以,我们可以倒这来模拟过程。
如何模拟呢?我们可以想到...
分类:
其他好文 时间:
2014-08-08 12:49:05
阅读次数:
164
需求自助设备交易统计输入项类型可为空备注机构选择Y采用下拉框的形式终端号手输Y与柜员号二选一交易柜员号手输与终端号二选一时间选择N时间区间状态多选设备状态:停用、启用输出(新增各业务的交易总额字段):我自己在报表工具birt中写的sqlselect * from ( -- 查询基本信息 ...
分类:
数据库 时间:
2014-08-08 12:23:56
阅读次数:
500
http://vjudge.net/problem/viewProblem.action?id=21557题目大意:每进行一次颜色改变都可以把一段区间内的黑石头变成白石头,白石头变成黑石头,最后问区间内黑石头连续的最大长度这里我们可以用rev[]作为lazy标记,每次进行改变,rev[]^1因为有黑...
分类:
其他好文 时间:
2014-08-08 09:33:45
阅读次数:
352
解题报告
题意:
略
思路:
单点更新,区间乘积。
#include
#include
#include
#define LL long long
using namespace std;
LL mul[501000];
void update(int root,int l,int r,int p,int v)
{
int mid=(l+r)/2;
if(l==r)...
分类:
其他好文 时间:
2014-08-08 08:29:05
阅读次数:
239
Just a HookTime Limit: 4000/2000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17124Accepted Submission(s): 8547Proble...
分类:
其他好文 时间:
2014-08-08 08:27:55
阅读次数:
261
#include
#include
#include
using namespace std;
#define INF 0x3f3f3f3f
const int N = 1005;
int n;
double p, pl, pr, dp[N];
double solve() {
p = 1 - pl - pr;
dp[0] = 0; dp[1] = 1 / p;...
分类:
其他好文 时间:
2014-08-08 02:04:15
阅读次数:
251
http://vjudge.net/problem/viewProblem.action?id=51622题目大意:给定一列n个数字,最初赋予值1到n两个操作:1.将区间[l,r]内的数改为x,则这区间中所有数的改变值进行求和,即ans=abs(a[l]-x)+abs[a[l+1]-x).....a...
分类:
其他好文 时间:
2014-08-08 01:39:35
阅读次数:
378
解题报告
题意:
求区间内最大值和最小值的差值。
思路:
裸线段树,我的线段树第一发。
#include
#include
#include
#define inf 99999999
#define LL long long
using namespace std;
LL minn[201000],maxx[201000];
void update(LL root,LL l,LL...
分类:
其他好文 时间:
2014-08-07 23:16:35
阅读次数:
282
~~~~
第一次遇到线段树合并的题,又被律爷教做人。TAT.
~~~~
线段树的题意都很好理解吧。。
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1540
http://poj.org/problem?id=2892
~~~~
我的代码:200ms
#include
#include
#include
#include
...
分类:
其他好文 时间:
2014-08-07 23:12:05
阅读次数:
356
解题报告
题意:
略
思路:
线段树单点增减和区间求和。
#include
#include
#include
#define LL long long
using namespace std;
int sum[201000];
void update(int root,int l,int r,int p,int v)
{
int mid=(l+r)/2;
if(l...
分类:
其他好文 时间:
2014-08-07 23:11:02
阅读次数:
378