洛谷 画栅栏Painting the Fence 解题报告
P2205 画栅栏Painting the Fence
题目描述
\(Farmer\) \(John\) 想出了一个给牛棚旁的长围墙涂色的好方法。(为了简单起见,我们把围墙看做一维的数轴,每一个单位长度代表一块栅栏)他只是简单的把刷子蘸满颜料,系在他最喜欢的奶牛\(Bessie\)上,然后让\(Bessie\)来回地经过围墙,自己则在一旁喝一杯冰镇的凉水。(……-_-|||) \(Bessie\) 经过的所有围墙都会被涂上一层颜料。\(Bessie\)从围墙上的位置\(0\)出发,并将会进行\(N\)次移动\((1 <= N <= 100,000\))。比如说,“\(10 L\)”的意思就是\(Bessie\)向左移动了\(10\)个单位。再比如说“\(15 R\)”的意思就是\(Bessie\)向右移动了\(15\)个单位。给出一系列\(Bessie\)移动的清单。\(FJ\) 想知道有多少块栅栏涂上了至少\(K\)层涂料。注意:\(Bessie\)最多会移动到离原点\(1,000,000,000\)单位远的地方。
输入输出格式
输入格式:
第1行: 两个整数: \(N K\)
第\(2...N+1\) 行: 每一行都描述了\(Bessie\)的一次移动。 (比如说 “\(15 L\)")
输出格式:
一个整数:被至少涂上\(K\)层涂料的栅栏数
不知道为什么,一开始死活想不到咋离散。。
其实只需要取出现过的区间就行了。
多次修改区间一次询问,差分会比较快,\(O(1)\)修改,\(O(n)\)询问了。
code:
#include <cstdio>
#include <algorithm>
using namespace std;
const int N=200010;
int n,k;
int a[N];
char c;
struct node
{
int d,loc;
friend bool operator <(node n1,node n2)
{
return n1.loc<n2.loc;
}
}t[N],f[N];
int main()
{
scanf("%d%d",&n,&k);
int to,now=0,cnt=0;
for(int i=1;i<=n;i++)
{
scanf("%d %c",&to,&c);
if(c=='R')
{
now+=to,a[i]=now;
t[++cnt].loc=a[i-1];
t[cnt].d=1;
t[++cnt].loc=a[i];
t[cnt].d=-1;
}
else
{
now-=to,a[i]=now;
t[++cnt].loc=a[i];
t[cnt].d=1;
t[++cnt].loc=a[i-1];
t[cnt].d=-1;
}
}
sort(t+1,t+1+cnt);
int cnt0=0;
for(int i=1;i<=cnt;i++)
{
if(f[cnt0].loc==t[i].loc)
f[cnt0].d+=t[i].d;
else
f[++cnt0].d=f[cnt0-1].d+t[i].d,f[cnt0].loc=t[i].loc;
}
int ans=0;
for(int i=1;i<cnt0;i++)
if(f[i].d>=k)
ans+=f[i+1].loc-f[i].loc;
printf("%d\n",ans);
return 0;
}
2018.5.4
洛谷 画栅栏Painting the Fence 解题报告的更多相关文章
- [luogu P2205] [USACO13JAN]画栅栏Painting the Fence
[luogu P2205] [USACO13JAN]画栅栏Painting the Fence 题目描述 Farmer John has devised a brilliant method to p ...
- 洛谷 P2323 [HNOI2006]公路修建问题 解题报告
P2323 [HNOI2006]公路修建问题 题目描述 输入输出格式 输入格式: 在实际评测时,将只会有m-1行公路 输出格式: 思路: 二分答案 然后把每条能加的大边都加上,然后加小边 但在洛谷的题 ...
- 洛谷——P2205 [USACO13JAN]画栅栏Painting the Fence
题目描述 Farmer John has devised a brilliant method to paint the long fence next to his barn (think of t ...
- 洛谷 P2205 [USACO13JAN]画栅栏Painting the Fence
传送门 题目大意: 开始站在原点,给出一系列操作 x L/R,表示向左或向右走几步. 最多会移动到离原点1,000,000,000单位远的地方. n次操作,n<=100000 问走过k次的地方有 ...
- 洛谷 P1852 [国家集训队]跳跳棋 解题报告
P1852 [国家集训队]跳跳棋 题目描述 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子. 我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在\(a\),\(b\), ...
- 洛谷 P3299 [SDOI2013]保护出题人 解题报告
P3299 [SDOI2013]保护出题人 题目描述 出题人铭铭认为给SDOI2012出题太可怕了,因为总要被骂,于是他又给SDOI2013出题了. 参加SDOI2012的小朋友们释放出大量的僵尸,企 ...
- 洛谷 P2059 [JLOI2013]卡牌游戏 解题报告
P2059 [JLOI2013]卡牌游戏 题意 有\(n\)个人玩约瑟夫游戏,有\(m\)张卡,每张卡上有一个正整数,每次庄家有放回的抽一张卡,干掉从庄家起顺时针的第\(k\)个人(计算庄家),干掉的 ...
- 洛谷 P2463 [SDOI2008]Sandy的卡片 解题报告
P2463 [SDOI2008]Sandy的卡片 题意 给\(n(\le 1000)\)串,定义两个串相等为"长度相同,且一个串每个数加某个数与另一个串完全相同",求所有串的最长公 ...
- 洛谷 P2774 方格取数问题 解题报告
P2774 方格取数问题 题目背景 none! 题目描述 在一个有 \(m*n\) 个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意 2 个数所在方格没有公共边,且取出的数的总和最大. ...
随机推荐
- 【强化学习】python 实现 q-learning 例一
本文作者:hhh5460 本文地址:https://www.cnblogs.com/hhh5460/p/10134018.html 问题情境 -o---T# T 就是宝藏的位置, o 是探索者的位置 ...
- C#编写WINNT服务,随便解决安卓开发遇到的5037被众多程序无节操占用的问题
需求分析: 最近重新开始学习安卓开发,好久不用的ADT集成开发环境频繁遇到不能在仿真机和真机上调试的问题,也就是本人另一篇博文描述的ADB(Android Debug Bridge)监控的5037被金 ...
- Centos下Nodejs+npm环境-部署记录
公司的一个项目上线,需要用到Nodejs和npm环境,这里记录下安装过程,方便回看同时供大家参考. 1)yum安装方式(版本比较老点,v5.12.0 + 3.8.6) 需要在centos中添加epel ...
- Linux内核分析——进程的描述和进程的创建
进程的描述和进程的创建 一. 进程的描述 (一)进程控制块PCB——task_struct 1.操作系统的三大管理功能包括: (1)进程管理 (2)内存管理 (3)文件系统 2.PCB task_st ...
- spatial-temporal information extraction典型方法总结
==================================== 咳咳咳 由于科研的直接对象就是video sequence,所以,如何更好地提取spatial-temporal inform ...
- Java实现小学四则运算练习系统(UI)
github项目地址 :https://github.com/feser-xuan/Arithmetic_test3_UI 小伙伴的博客链接:http://www.cnblogs.com/fukang ...
- 腾讯 xtestserver 基本使用教程~
刚刚简单录制了下 腾讯demo的基本测试脚本 成功~get新技能成功~开心ing~ 体验就是: 1.各种安卓机找开发者中心选项的usb调试模式太难找了.. 2.不管录制还是播放录制时都感觉好慢... ...
- String系列-----String
jdk源码学习之String,手动实现一个String package com.amazing.jdk.string_2017_12_31; import java.io.Serializable; ...
- HDU 2033 人见人爱A+B
http://acm.hdu.edu.cn/showproblem.php?pid=2033 Problem Description HDOJ上面已经有10来道A+B的题目了,相信这些题目曾经是大家的 ...
- super 使用以及原理
用super也很久了,但是一直没有关注过他的原理.最近开始越来越多关注python更底层的实现和奇技淫巧.看到该方法越发使用得多所以也研究了一波 平时单继承可能是我们遇到最多的情况.无非就是类似情况. ...