暑假集训热身赛
2016-07-22 23:47
323 查看
[b] 完成度 (8 / 10)[/b]
[b]Problem A[/b]
[b]题目大意[/b]
给定 m,n,询问二元组(x,y)( 1 <= x <= m , 1 <= y <= n) 满足 ( x + y ) % 5 = 0 的组数。
解题分析
直接枚举x与y的模余
参考程序
View Code
Problem I
题目大意
题目分析
参考程序
Problem J
题目大意
题目分析
参考程序
[b]Problem A[/b]
[b]题目大意[/b]
给定 m,n,询问二元组(x,y)( 1 <= x <= m , 1 <= y <= n) 满足 ( x + y ) % 5 = 0 的组数。
解题分析
直接枚举x与y的模余
参考程序
#include <cstdio> #include <algorithm> using namespace std; #define maxn 200008 #define len 20 int n; int a[maxn],b[maxn]; int fa[maxn][len],fb[maxn][len]; void rmq_inita(){ for (int i = 1; i <= n;i++) fa[i][0] = a[i]; for (int j = 1; (1 << j) <= n;j++) for (int i = 1;i + (1 << j) - 1 <= n;i++) fa[i][j] = max(fa[i][j - 1] , fa[i + (1 << j - 1)][j - 1]); } int rmqa(int l,int r){ int k = 0; while (1 << (k+1) <= r - l + 1) k++; return max(fa[l][k] , fa[r - (1 << k) + 1][k]); } void rmq_initb(){ for (int i = 1; i <= n;i++) fb[i][0] = b[i]; for (int j = 1; (1 << j) <= n;j++) for (int i = 1;i + (1 << j) - 1 <= n;i++) fb[i][j] = min(fb[i][j - 1] , fb[i + (1 << j - 1)][j - 1]); } int rmqb(int l,int r){ int k = 0; while (1 << (k+1) <= r - l + 1) k++; return min(fb[l][k] , fb[r - (1 << k) + 1][k]); } int main(){ scanf("%d",&n); for (int i = 1;i <= n;i++) scanf("%d",&a[i]); for (int i = 1;i <= n;i++) scanf("%d",&b[i]); rmq_inita(); rmq_initb(); int L; long long ans=0; for (L = 1;L <= n;L++){ int l,r,mid,res1=0,res2=0; l = L; r = n ; while (l <= r){ mid = (l + r) / 2; if (rmqb(L,mid) - rmqa(L,mid) >= 0){ res1 = mid; l = mid + 1; } else r = mid - 1; } l = L; r = n ; while (l <= r){ mid = (l + r) / 2; if (rmqa(L,mid) - rmqb(L,mid) >= 0){ res2 = mid; r = mid - 1; } else l = mid + 1; } if (rmqa(L,res1) == rmqb(L,res1) && rmqa(L,res2) == rmqb(L,res2) )ans += res1 - res2 +1; } printf("%I64d\n",ans); return 0; }
View Code
Problem I
题目大意
题目分析
参考程序
Problem J
题目大意
题目分析
参考程序
相关文章推荐
- 2016ACM暑假集训 - Prime Ring Problem
- 环境变量设置
- Invert Binary Tree
- Android 手势的识别
- javaee之session的购物车练习
- HDU:1061 Rightmost Digit(规律)
- (三):HDU-Doing Homework again
- js中的面向对象程序设计(1)-对象和属性的类型
- 211. Add and Search Word - Data structure design
- 一个操作系统的实现中关于64位和32位的问题
- hdu 3440 House Man(差分约束)
- 合并两个排序的链表 C++
- 【杭电 1789 】Doing Homework again
- tomcat启动startup.bat一闪而过
- 内核打印杂谈
- 20 个 CSS 高级技巧汇总
- hdu 5744(想法题)
- javaee之cookie和session的见解和练习
- 15个你不可不知的cmd命令
- Codeforces 698A: Vacations(贪心)