【Codeforces 91B】Queue
【链接】 我是链接,点我呀:)
【题意】
【题解】
对于每个i,用二分的方法求出来y所在的位置j. 【代码】 [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ... [题目链接]:http://codeforces.com/contest/767/problem/B [题意] 排队去办护照; 给你n个人何时来的信息; 然后问你应该何时去才能在队伍中等待的时间最短; ... [题目链接]:http://codeforces.com/contest/515/problem/D [题意] 给你一个n*m的格子; 然后让你用1*2的长方形去填格子的空缺; 如果有填满的方案且方案 ... [题目链接]:http://codeforces.com/contest/510/problem/C [题意] 给你n个字符串; 问你要怎么修改字典序; (即原本是a,b,c..z现在你可以修改每个字 ... [题目链接]:http://codeforces.com/contest/796/problem/D [题意] 在一棵树上,保证每个点在距离d之内都有一个警察局; 让你删掉最多的边,使得剩下的森林仍然 ... [题目链接]:http://codeforces.com/problemset/problem/716/D [题意] 给你一张图; 这张图上有一些边的权值未知; 让你确定这些权值(改成一个正整数) 使 ... [题目链接]:http://codeforces.com/problemset/problem/505/D [题意] 让你构造一张有向图; n个点; 以及所要求的m对联通关系(xi,yi) 即要求这张 ... [题目链接]:http://codeforces.com/problemset/problem/95/C [题意] 给你n个点,m条边; 每个点有一辆出租车; 可以到达离这个点距离不超过u的点,且在这 ... time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ... id=2983">[POJ 2983]Is the Information Reliable? (差分约束系统) Is the Information Reliable? Time L ... EasyPOI是在jeecg的poi模块基础上,继续开发独立出来的,能够说是2.0版本号,EasyPoi封装的目的和jeecg一致,争取让大家write less do more ,在这个思路上eas ... sudo pip install -U pyyaml nltk import nltk nltk.download() 搞不定,必须代理: Installing via a proxy web ser ... lucas是求组合数C(m,n)%p,有一个公式:C(m,n) = C(m/p,n/p)*C(m%p,n%p). (a*b)%c==a%c*b%c,但是(a/b)%c!=a%c/b%c,所以我们要算b ... 注意事项: 符号必须为英文. 数据库操作层级: 建表大全: #新建表zuoye1:drop table if exists zuoye1;create table zuoye1( id int ... 最近刚好碰到这个问题,看完这个就明白了.写的很好,所以转载了! CSS清除浮动_清除float浮动 CSS清除浮动方法集合 一.浮动产生原因 - TOP 一般浮动是什么情况呢?一般是一个盒子里 ... 好几天又没写,因为这几天很闲,平时忙的时候自己再累都不会睡着,但是呢这没事了,照理说应该是不瞌睡了,结果还睡着了. 所以说,人很贱.也验证了一句话,没有目标的人其实最无聊.人一定要有自己的工作,这工作 ... 前言:项目开发用到了Redis,但是在调试Redis数据的时候,没有一款通用的可视化管理工具.在网络找了一些,但是感觉功能上都不尽人意,于是决定抽出一点时间,开发一个用起来顺手的Redis管理工具.秉 ... Was macht Martin? - Um 8.00 Uhr steht martin auf. aufstehen - aufstand - ist aufgestanden 起床 Um 6 Uh ... Session简介 session,中文经常翻译为会话,其本来的含义是 指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session.有时候我们 ...
可以这样求。
假设现在二分到了位置mid.
那么随便用个rmq求出来mid..n这一段的最小值temp。
看看temp是否满足#include <bits/stdc++.h>
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define LL long long
using namespace std;
const int N = 1e5;
int n;
int a[N+10];
int mi[N+10][17+5];
int get_mi(int l,int r){
int len = log2(r-l+1);
return min(mi[l][len],mi[r-(1<<len)+1][len]);
}
int main()
{
//freopen("D:\\rush.txt","r",stdin);
scanf("%d",&n);
rep1(i,1,n) scanf("%d",&a[i]);
rep1(i,1,n) mi[i][0] = a[i];
rep1(l,1,17)
rep1(i,1,n){
int j = i+(1<<l)-1;
if (j>n) break;
mi[i][l] = min(mi[i][l-1],mi[i+(1<<(l-1))][l-1]);
}
rep1(i,1,n){
int l = i,r = n,temp = -1;
while (l<=r){
int mid = (l+r)>>1;
if (get_mi(mid,n)<a[i]){
temp = mid;
l = mid + 1;
}else
r = mid - 1;
}
if (temp==-1){
printf("-1");
}else{
printf("%d",temp-i-1);
}
if(i==n)puts("");else putchar(' ');
}
return 0;
}
【Codeforces 91B】Queue的更多相关文章
随机推荐