hdu 4791 RMQ
来源:互联网 发布:大连 旅游 知乎 编辑:程序博客网 时间:2024/05/22 17:25
我是来存RMQ板的
#include <iostream> #include <algorithm> #include <cstdio> #include <string> #include <cstring> #include <cmath> #include <vector> #include <list> #include <map> #include <set> #include <deque> #include <queue> #include <stack> #include <bitset> #include <functional> #include <sstream> #include <iomanip> #include <cmath> #include <cstdlib> #include <ctime> #pragma comment(linker, "/STACK:102400000,102400000") typedef long long ll; #define INF 1e9 #define maxn 110010 #define maxm 100086+10 #define mod 1000000009 #define eps 1e-7 #define PI acos(-1.0) #define rep(i,n) for(int i=0;i<n;i++) #define rep1(i,n) for(int i=1;i<=n;i++) #define scan(n) scanf("%d",&n) #define scanll(n) scanf("%I64d",&n) #define scan2(n,m) scanf("%d%d",&n,&m) #define scanll2(n,m) scanf("%I64d%I64d",&n,&m) #define scans(s) scanf("%s",s); #define ini(a) memset(a,0,sizeof(a)) #define out(n) printf("%d\n",n) #define outll(n) printf("%I64d\n",n) using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 int n,m;int s[maxn];int p[maxn];ll a[maxn];ll d[maxn][31];void RMQ_init(){rep(i,n) d[i][0] = a[i];for(int j=1;(1<<j) <= n; j++)for(int i = 0;i+(1<<j)-1 < n; i++)d[i][j] = min(d[i][j-1], d[i+(1<<(j-1))][j-1]);}ll query(int L,int R){int k = 0;while((1<<(k+1)) <= R-L+1) k++;return min(d[L][k], d[R-(1<<k)+1][k]);}ll solve(int x){int pos = lower_bound(s,s+n,x) - s;if(pos >= n) return (ll)x * p[n-1];ll ans = 0;if(s[pos] == x) ans = a[pos];else ans = (ll)x * p[pos-1];ans = min(ans,query(pos,n-1));return ans;}int main(){#ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); #endif int T;cin>>T;while(T--){scanf("%d%d",&n,&m);rep(i,n){scanf("%d%d",&s[i],&p[i]);a[i] = (ll)s[i] * p[i];}RMQ_init();int x;while(m--){scan(x);printf("%I64d\n",solve(x));}}return 0;}
0 0
- hdu 4791 RMQ
- HDU 4791 Alice's Print Service(RMQ)
- HDU 3183 RMQ
- hdu 3486(RMQ应用)
- hdu 2888(二维RMQ)
- hdu 3486 Interviewe 【RMQ】
- hdu 2888 二维rmq
- hdu 3183 RMQ 应用
- hdu 3486 RMQ + 二分
- hdu 3183 RMQ
- HDU 3603 二分+RMQ
- hdu 3489(RMQ)Interviewe
- hdu 3486 Interviewe (RMQ)
- hdu 5172 RMQ
- (2888)HDU-RMQ
- 【HDU 4122】RMQ
- hdu 5289 Assignment(RMQ)
- HDU 3183 RMQ
- Centos安装Unrar以及使用方法
- Error: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-965200530-172.21.3.1
- 关于51的一些理解
- android HttpClient与服务器交互
- Lisa随手记下载量统计
- hdu 4791 RMQ
- 黑马程序员_iOS开发C语言基础之结构体
- 整数的分划问题
- 求三个数的最大值
- 《Dive into Python》读书笔记之正则表达式
- 吴鉴鹰谈一个单片机初学者的傲慢与偏见
- day45,page70
- QT5.3.2连接mysql
- jQuery Validate 校验框架学习总结