A. Karen and Morning

传送门:http://codeforces.com/contest/816/problem/A

水题,参考程序如下:

#include <stdio.h>

int main(void)
{
int h, m, H, M;
scanf("%d:%d", &h, &m);
for (int i = ; i <= * ; i++) {
H = (h + (m + i) / ) % ;
M = (m + i) % ;
if (H / == M % && H % == M / ) {
printf("%d\n", i);
break;
}
}
return ;
}

B. Karen and Coffee

传送门:http://codeforces.com/contest/816/problem/B

本题是一个数学问题——区间统计。

给定n个整数区间,第i个区间为[li..ri]。定义数轴上一个整数点的覆盖重数为给定区间中,包含该整数的区间个数。

再给出q次查询,第j次的查询区间为[aj..bj],查询内容为区间[aj..bj]中覆盖重数至少为k的整数点的个数。

最直观的解法是直接构造覆盖重数数组c[]:c[]初始化为0,对每一个i,将c[li..ri]++;查询时,对每一个j,统计c[aj..bj]≥k的个数即可。这个记录与查询的时间复杂度均比较高,因此需要在此基础上建立一个优化方案:自左向右的计数。

计算覆盖重数数组c[]的简单方法:

a.c[]初始化为0;

b.对于每一个ic[li]++c[ri+1]--

c.自左向右计数:c[a]+=c[a-1]。

如此,记录数据的复杂度为线性的:O(n+MAX_VAL)。

之后统计c[]≥k的整数点个数:直接统计的时间复杂度较高,因此可以考虑构造另一个数组cnt[]:对每一个acnt[a]为c[0..a]≥k的个数。因此,对于第j次查询,c[aj..bj]≥k的个数为cnt[bj]-cnt[aj-1]。

计算数组cnt[]的简单方法:

a.对于每一个0≤a≤MAX_VAL,若c[a]≥k,则cnt[a]=1,否则cnt[a]=0;

b.自左向右计数:cnt[a]+=cnt[a-1]。

程序实现上,可以使用一个数组完成操作。参考程序如下:

#include <stdio.h>
#define MAX_VAL 200001 int c[MAX_VAL]; int main(void)
{
int n, k, q;
scanf("%d%d%d", &n, &k, &q);
for (int i = ; i < n; i++) {
int l, r;
scanf("%d%d", &l, &r);
c[l]++;
c[r + ]--;
}
for (int i = ; i < MAX_VAL; i++)
c[i] += c[i - ];
for (int i = ; i < MAX_VAL; i++)
c[i] = c[i] >= k? : ;
for (int i = ; i < MAX_VAL; i++)
c[i] += c[i - ];
while (q--) {
int a, b;
scanf("%d%d", &a, &b);
printf("%d\n", c[b] - c[a - ]);
}
return ;
}

Codeforces 816A/B的更多相关文章

  1. 【codeforces 816A】Karen and Morning

    [题目链接]:http://codeforces.com/contest/816/problem/A [题意] 让你一分钟一分钟地累加时间; 问多长时间以后是个回文串; [题解] reverse之后如 ...

  2. [Codeforces 816A]Karen and Morning

    题目大意:给你一个时间(hh:mm),求最少经过多少分钟才能使这个时间变成回文. 解题思路:模拟,先判断0的情况,然后每过1分钟判断一次即可. C++ Code: #include<cstdio ...

  3. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  4. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  5. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  6. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  7. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  8. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

  9. CodeForces - 261B Maxim and Restaurant

    http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...

随机推荐

  1. Android中检測字符编码(GB2312,ASCII,UTF8,UNICODE,TOTAL——ENCODINGS)方法(一)

    package com.android.filebrowser;   import java.io.*; import java.net.*;   public class FileEncodingD ...

  2. 2014腾讯实习生笔试题——define与typedef

    2014腾讯实习生笔试(广州站)第26题填空题: #define MAX_NUM 1000+1 int Temp = Max_NUM*10; 则Temp的值为( ) 答案是:1010, 由于宏定义仅仅 ...

  3. windows脚本(VBS)之cmd命令行的妙用

    windows脚本(VBS)之cmd命令行的妙用 (2009-08-06 13:40:55) 转载▼ 标签: 脚本 cmd 命令行 vbs js 简单 公式 windows it 分类: 计算机 脚本 ...

  4. HDU1573 X问题【一元线性同余方程组】

    题目链接: http://acm.hdu.edu.cn/showproblem.php? pid=1573 题目大意: 求在小于等于N的正整数中有多少个X满足:X mod a[0] = b[0], X ...

  5. jxl 导入导出Excel(有模板)

    1.导入 @Override public String importBusinessScope(File file, String unit_id) throws Exception { Workb ...

  6. Android+Jquery Mobile学习系列(4)-页面转场及参数传递

    关于页面转场,这个必须得专门列出来说明一下,因为Jquery Mobile与普通的Web发开有一些区别,这个对于新手如果不了解的话,就会钻到死胡同.撸主前段时间就是很急躁地上手开发程序,结果在页面转场 ...

  7. C# 验证数字的正则表达式集

    验证数字的正则表达式集 博客分类: 正则 正则表达式 验证数字的正则表达式集 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d ...

  8. CodeForces - 749C Voting

    C. Voting time limit per test 1 second memory limit per test 256 megabytes input standard input outp ...

  9. hdu 1542(线段树+扫描线 求矩形相交面积)

    Atlantis Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  10. 二维矩阵相乘 in C++

    #include <iostream> #include <vector> #include <string> #include <sstream> # ...