玲珑#19 A 数论打表 B RMQ+二分
来源:互联网 发布:软件系统集成商 编辑:程序博客网 时间:2024/05/16 12:59
A: http://www.ifrog.cc/acm/problem/1145
#include <bits/stdc++.h>using namespace std;int main(){int n;while(~scanf("%d",&n)){int m = n;int num;if( m >=1 && m<=10 ){num = 0;}else if(m <= 99) num = 1;else if(m <= 998) num = 2;else if(m <= 9997) num = 3;else if(m <= 99996) num = 4;else if(m <= 999995) num = 5;else if(m <= 9999994) num = 6;else if(m <= 99999993) num = 7;else if(m <= 999999992) num = 8;else if(m <= 9999999991) num = 9;cout<<n+num<<endl;}return 0;}
B:http://www.ifrog.cc/acm/problem/1149
#include <iostream>#include <cstdio>#include <string.h>#include <cmath>#define LL long longusing namespace std;const int AX = 2e5+666;int dp1[AX][20];int dp2[AX][20];int n,k;int mm[AX];int a[AX];void rmq(){for( int j = 1 ; (1 << j) <= n ; j++ ){for( int i = 1 ; i + ( 1 << j ) -1 <= n ; i++ ){dp1[i][j] = min(dp1[i][j-1],dp1[i+(1<<(j-1))][j-1]);dp2[i][j] = max(dp2[i][j-1],dp2[i+(1<<(j-1))][j-1]);}}}int query(int l, int r){int k = mm[r - l + 1];//int k = (int)log( r - l + 1) / log(2);return max(dp2[l][k] , dp2[r- ( 1 << k ) + 1 ][k]) - min(dp1[l][k] , dp1[r- ( 1 << k ) + 1 ][k]);}int main(){mm[0] = -1;for(int i=1; i<AX; ++i) mm[i]=(i&(i-1))?mm[i-1]:mm[i-1]+1; //预处理存储K的值scanf("%d%d",&n,&k);for(int i = 1 ; i <= n; i++){scanf("%d",&a[i]);dp1[i][0] = a[i];dp2[i][0] = a[i];}rmq();LL ans = 0;int l,r,res;for( int i = 1 ; i <= n ; i++ ){l = 1, r = i ,res = i;while( l <= r ){int mid = (l + r) >> 1;int mn = query( mid , i ) ;if( mn > k ) l = mid + 1;else r = mid - 1 , res = mid ;}ans += ( i - res + 1 );}printf("%lld\n",ans);return 0;}
阅读全文
0 0
- 玲珑#19 A 数论打表 B RMQ+二分
- “玲珑杯”ACM比赛 Round #19 B.Buildings【二分+RMQ】
- “玲珑杯”ACM 热身赛 # 2.5 A-B (数论)
- 【二分+RMQ】玲珑oj 1149
- UVA138(数论问题二分打表)
- 玲珑杯#2.5 A-B
- 玲珑杯 1032 A-B
- CodeForces 633 B.A Trivial Problem(二分+数论)
- “玲珑杯”ACM比赛 Round #19 B(RMQ大法好啊,比线段树快得多!!!!)
- 51nod 1799 思维 二分 数论 分块打表
- 【玲珑杯 Round#13 B】 【倍增+二分】
- 玲珑学院OJ 1149-Buildings-(RMQ+二分)
- 玲珑杯 A -- A plus B
- A + B Problem + 数论
- A/B(数论)
- 玲珑杯2.5 1032 A-B
- 玲珑杯 1056 - A plus B
- 2016 多校第一场 hdu 5276((线段树+暴力打表)|(RMQ + 二分))
- 我的前端页面开发js简易有效环境
- .Net Core 系列:2、ADO.Net 基础
- 13期8月自荐
- 扩展javascript原生对象
- css positioning计算和jquery对应函数
- 玲珑#19 A 数论打表 B RMQ+二分
- 关于cookie的详解
- 洛谷 P1231 教辅的组成
- js事件绑定、事件监听、事件委托
- ZOJ 3471 Most Powerful (状态压缩)
- MVP测试经典案例
- C++中“内存重叠”
- 网站统计及移动应用数据统计相关术语知识详解
- web统计数据搜集及分析原理