首页 > 其他分享 >「杂题乱刷」洛谷P9515

「杂题乱刷」洛谷P9515

时间:2023-11-23 20:45:31浏览次数:36  
标签:P9515 return READ POS int MAXR 洛谷 时刻 杂题

原题链接

P9515 「JOC-1A」限时签到

题意简述

有一条公路上有 \(n\) 个商店,每个商店分别在不同的时刻开放,求如何在 \(t\) 时刻之前到达 \(f\) 点并且到达最多开放的商店的数量,特别的,一个时刻只能走一格。

解题思路

这一道题是一道贪心题。首先,因为要在 \(t\) 时刻之前到达 \(f\) 点,所以我们可以直接理解为要在 \(t-f\) 的时刻到达原点。所以,为了避免走过重复的路径,我们可以到一定的时刻直接从原点走到 \(f\) 点,只需要判断 \(x_i-a_i\) 是否大于 \(t\) 即可,如果成立,就将 \(ans\) 增加 \(1\),最后直接输出 \(ans\) 即可。

参考代码

#include<bits/stdc++.h>
using namespace std;
#define QwQ return 0;
long long n,t,f,a,b,ans;
namespace IO {//快读
    const int MAXR = 100000;
    char _READ_[MAXR], _PRINT_[MAXR];
    int _READ_POS_, _PRINT_POS_, _READ_LEN_;
    inline char readc() {
    #ifndef ONLINE_JUDGE
        return getchar();
    #endif
        if (!_READ_POS_) {
            if (feof(stdin)) return -1;
            _READ_LEN_ = fread(_READ_, 1, MAXR, stdin);
        }
        char c = _READ_[_READ_POS_++];
        if (_READ_POS_ == _READ_LEN_) _READ_POS_ = 0;
        return c;
    }
    template<typename T> inline int read(T &x) {
        x = 0; register int flag = 1, c;
        while (((c = readc()) < '0' || c > '9') && c != '-')
            if (c < 0) return -1;
        if (c == '-') flag = -1; else x = c - '0';
        while ((c = readc()) >= '0' && c <= '9') x = x * 10 - '0' + c;
        x *= flag; return 0;
    }
}
int main()
{
	cin>>n>>t>>f;
	t-=f;//贪心结论1
	for(int i=0;i<n;i++)
	{
		IO::read(a);
		IO::read(b);//注意,这里为了避免MLE,所以直接将数组转化为变量
		if(b-a<=t)	//贪心结论2
			ans++;//如果符合,将ans增加1
	}
	cout<<ans;//输出答案
	QwQ;//华丽的结束
}

标签:P9515,return,READ,POS,int,MAXR,洛谷,时刻,杂题
From: https://www.cnblogs.com/wangmarui/p/17852448.html

相关文章

  • 「杂题乱刷」CF283A
    原题链接CF283ACowsandSequence题目简述给定一个初始为空的序列\(a\),并给出\(3\)种操作方式:将\(a_1\sima_x\)均加上\(y\);将\(a\)序列末尾增加一个正整数\(x\);将\(a\)序列的最后一个数字给去掉;现在要求你求出进行每一次操作后的序列\(a\)的所有数......
  • 「杂题乱刷」洛谷P9253
    题目链接P9253[PA2022]Ornitolog2题目简述给定一个音高序列,输出最少要修改多少整数才能使这个序列成为交替鹡鸰鸟鸣的音高序列。题意分析操作后的音高序列总共有\(2\)种可能:音量由高变低再由低变高;音量由低变高再由高变低。又因为大小范围是\(10^4\times5......
  • 洛谷 P8955 「VUSC」Card Tricks
    洛谷传送门很显然每个数的每一位最多只会修改一遍。于是拆位,每一位开个并查集,存下一个不拥有这一位的数,就可以暴力修改了。但是空间是\(O(n\logV)\)的,炸了。于是可以考虑手写i24类,同时并查集寻找祖先不要用递归版的路径压缩,然后就过了。code//Problem:P8955「VUSC」......
  • 【模板】并查集 (洛谷P3367)
    1#include<bits/stdc++.h>2usingnamespacestd;3template<classT>4inlinevoidread(T&s)5{6s=0;7intw=1;8charch=getchar();9while(ch<'0'||ch>'9')10{11......
  • 【模板】线段树1(洛谷P3372)
    1#include<iostream>2#include<cstdio>34usingnamespacestd;56template<classT>7inlinevoidread(T&s)8{9s=0;10intw=1;11charch=getchar();12while(ch<'0�......
  • 【树链剖分】P3401 洛谷树 题解
    P3401考虑先将路径权值进行转化,因为很难对路径直接进行统计。考虑如何表示出这条路径的权值。记\(s_i=\oplus_{j\in\text{path}(1,i)}w_j\),其中\(\text{path}(i,j)\)表示\(i\)到\(j\)的路径上的边集。则\(u\tov\)的路径的权值为\(s_u\opluss_v\)。现在转变为......
  • 10月杂题
    还是得写写杂题,初三赛季说明这对我是buff啊。这次CSP-S再次检验王者是超级debuff!!!1.P7830[CCO2021]ThroughAnotherMazeDarkly感受一下,每次从根开始绕一圈回去,这个圈会越来越大,直到大小变成\(n-1\)。考虑求出每个边在最后一个圈内入和出的时间(就是欧拉序),你会发现每......
  • 11月杂题
    1.10.30D/qoj6794SequencetoSequence先观察到我们一定是先减后加。因为对于一个数+1-1一定不会改变,但-1+1就会有改变。那对于相邻的+1-1操作,如果不交就直接交换;否则把相交的部分直接删掉,那要么删成两个+1,要么成两个-1,要么是不交的+1-1。如果我们指定一个数减......
  • 9月杂题
    为什么19号了才开始写杂题1.ZJOI2018胖考虑一个新增边能松哪些点。它会被其它新增边影响。感受一下,松的范围一定是一个区间。如果\(|x-x_i|>|x-x_j|\)且\(b_i+|s_x-s_{x_i}|>b_j+|s_x-s_{x_j}|\),\(i\)就松不到\(j\)。二分边界,RMQ判断即可。以左端点为例,\([mid,i]\)......
  • 洛谷P8612 取宝
    经典的记忆化搜索,一开始因为最后的答案忘记加取模卡了半天,真是愚蠢至极。#include<iostream>#include<algorithm>#include<stdio.h>#include<stdlib.h>#include<cstring>usingnamespacestd;constintN=55,mod=1e9+7;intf[N][N][15][15];//横坐标纵......