zoukankan      html  css  js  c++  java
  • 题解 CF499A 【Watching a movie】

    题意

    看一部电影,从第一分钟开始看,你每次可以按下快进键,快进x分钟,电影有n个精彩片段,问看到所有精彩片段至少需要看多少分钟电影。(数据保证能看到所有精彩片段)

    我们可以发现答案其实

    就是间隔时间%x+精彩片段时间

    拿第一个样例

    1 2 3 4 5 6 7 8 9 10 11 12

    5 6 10 11 12这三分钟一定要选,我们在第1分钟可以跳过到达第4分钟(1,2,3跳过了),在第6分钟结束时跳到第10分钟答案就是6分钟。

    那么可以写出公式

    ans+=(l[i]-r[i-1]-1)%x;

    ans+=r[i]-l[i]+1;

    由于从第一分钟开始看需要特判,我们可以将r[0]=0便可(至于为什么是0而不是1,可以自己画图看看,不做证明),由于全局变量本身就是0,就不需要赋值

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int n,x,l[60],r[60],ans;
    int main(){
    	scanf("%d %d",&n,&x);
    	for(int i=1;i<=n;++i){
    		scanf("%d %d",&l[i],&r[i]);
    	}
    	for(int i=1;i<=n;++i){
    		ans+=(l[i]-r[i-1]-1)%x;
    		ans+=r[i]-l[i]+1;
    	}
    	printf("%d",ans);
    	return 0;
    }
    
  • 相关阅读:
    java 异常捕获机制
    读取java当前路径的文件输出在控制台
    java 简易记事本 程序
    java 利用文件输入输出流实现文件复制
    IutputStreamWriterDemo
    OutputStreamWriterDemo
    Longest Substring Without Repeat Characters
    Add Two Numbers
    Two Sum
    使用 Canvas 绘图
  • 原文地址:https://www.cnblogs.com/donkey2603089141/p/11415013.html
Copyright © 2011-2022 走看看