A. Borya's Diagnosis

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

本题是一个模拟问题。

依次访问n个元素,第i个元素首次出现于si时刻,之后相邻两次出现的时间间隔为di。求访问结束的时刻。

贪心地模拟之。

注意事项:当运算符“/”用于负操作数时,在C89中,其结果由实现定义;在C99中,除法的结果总是向零截取的!!

注意特判si>cur的情形,以避免“由实现定义”的负操作数除法“/”。

参考程序如下:

#include <stdio.h>
#include <stdint.h>
#define MAX_N 1000 int s[MAX_N], d[MAX_N]; int main(void)
{
int n;
scanf("%d", &n);
for (int i = ; i < n; i++)
scanf("%d%d", &s[i], &d[i]);
int cur = ;
for (int i = ; i < n; i++) {
if (s[i] > cur) cur = s[i];
else {
int j = (cur - s[i]) / d[i];
cur = s[i] + d[i] * (j + );
}
}
printf("%d\n", cur);
return ;
}

B. Table Tennis

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

本题是一个模拟问题。

n个人排成队列进行比赛,比赛规则如下:

①队首的两个人比赛,胜出者留在队首,另一个人去队尾;

②当一个人总共胜出k次时,比赛结束,这个人成为最终的赢家;

③两个人比赛时,能量值较大的人胜出。

对于最初的队列,第i个人的能量值为ai。已知a[1..n]是1..n的一个排列。

求最终赢家的能量值。

贪心地模拟之。

k≥n,则所求结果是全局最优解,即最大的能量值max{ai|1≤i≤n}。

k<n,则直接用队列模拟即可,注意设置计数器cnt,表示队首胜利的次数。

参考程序如下:

#include <bits/stdc++.h>
using namespace std; queue<int> q; int main(void)
{
int n;
int64_t k;
scanf("%d%I64d", &n, &k);
for (int i = ; i < n; i++) {
int a;
scanf("%d", &a);
q.push(a);
}
if (k >= n) {
int ans = ;
while (!q.empty()) {
if (q.front() > ans)
ans = q.front();
q.pop();
}
printf("%d\n", ans);
return ;
}
int cur = q.front();
q.pop();
int cnt = ;
while (cnt < k) {
int fnt = q.front();
if (cur > fnt) {
cnt++;
q.pop();
q.push(fnt);
} else {
cnt = ;
q.pop();
q.push(cur);
cur = fnt;
}
}
printf("%d\n", cur);
return ;
}

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

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

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

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

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

  3. 【Codeforces 738C】Road to Cinema

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

  4. 【Codeforces 738A】Interview with Oleg

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

  5. CodeForces - 662A Gambling Nim

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

  6. CodeForces - 274B Zero Tree

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

  7. CodeForces - 261B Maxim and Restaurant

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

  8. CodeForces - 696B Puzzles

    http://codeforces.com/problemset/problem/696/B 题目大意: 这是一颗有n个点的树,你从根开始游走,每当你第一次到达一个点时,把这个点的权记为(你已经到过不 ...

  9. CodeForces - 148D Bag of mice

    http://codeforces.com/problemset/problem/148/D 题目大意: 原来袋子里有w只白鼠和b只黑鼠 龙和王妃轮流从袋子里抓老鼠.谁先抓到白色老鼠谁就赢. 王妃每次 ...

随机推荐

  1. nginx启动访问

    修改配置文件后,查看配置是否ok 以下是有错误的 以下是ok的 nginx/sbin/nginx -t 启动查询: /usr/local/nginx/sbin/nginx -c /usr/local/ ...

  2. 关于ffmpeg的安装具体步骤和说明

    一.windows安装: 直接下载地址: https://ffmpeg.zeranoe.com/builds/ https://ffmpeg.zeranoe.com/builds/win64/stat ...

  3. Android重力感应器Sensor编程

    添加当重力变化时的处理函数在创建监听器时调用的函数 doSomething(x, y, z) 是自己定义的方法.当手机倾斜方向改变时,监听器会调用该方法.我们要做的,就是填充该方法,用于在重力发生变化 ...

  4. diaowen Maven Webapp

    五月 , :: 上午 org.apache.catalina.startup.VersionLoggerListener log INFO: Server version: Apache Tomcat ...

  5. selenium3 + python - alert_is_present定位

    from selenium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium ...

  6. Grafana+Zabbix+Prometheus 监控系统

    环境说明 软件 版本 操作系统 IP地址 Grafana 5.4.3-1 Centos7.5 192.168.18.231 Prometheus 2.6.1 Centos7.5 192.168.18. ...

  7. Laravel5.1学习笔记7 视图

    视图 (View) 基本用法 传递数据到视图 在多个视图中分享数据 视图组件   #基本用法 视图里面包含了你应用程序所提供的 HTML 代码,并且提供一个简单的方式来分离控制器和网页呈现上的逻辑.视 ...

  8. Android HTTP下载文件并保存到本地或SD卡

    想把文件保存到SD卡中,一定要知道SD卡的路径,获取SD卡路径: Environment.getExternalStorageDirectory() 另外,在保存之前要判断SD卡是否已经安装好,并且可 ...

  9. Linux通信之异步通知模式

    [参考]韦东山 教学笔记 为了使设备支持异步通知机制,驱动程序中涉及以下3项工作:1. 支持F_SETOWN命令,能在这个控制命令处理中设置filp->f_owner为对应进程ID. 不过此项工 ...

  10. 设置浏览器让js报错

    ie-工具---internet选项--高级--“禁用脚本提示”前面那个框的勾去掉---“显示每个脚本错误的通知”给该项打勾 注意:此时是静态页面很容易提示出错误的行号,但是当js是动态页面的时候,浏 ...