noip2012借教室_noip小学组

noip2012借教室_noip小学组这个题首先很容易想到枚举1-m,再一个一个加起来,判断一下(最直白的暴力)于是又很容易想到用差分数组可以优化一下。就像这样#include<iostream>#include<cstdio>usingnamespacestd;constintmaxn=1000005;intd[maxn],s[maxn],t[maxn],r[maxn];…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

这个题首先很容易想到枚举1-m,再一个一个加起来,判断一下(最直白的暴力)

于是又很容易想到用差分数组可以优化一下。

就像这样

#include <iostream>
#include <cstdio>

using namespace std;
const int maxn=1000005;
int d[maxn],s[maxn],t[maxn],r[maxn];
int c[maxn];int n,m; 
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++) scanf("%d",&r[i]);
	for(int i=1;i<=m;i++)
	{
		scanf("%d%d%d",&d[i],&s[i],&t[i]);
	}
	for(int i=1;i<=m;i++)
	{
		c[s[i]]+=d[i];c[t[i]+1]-=d[i];
		int sum=0;
		for(int j=1;j<=n;j++)
		{
			sum+=c[j];if(sum>r[j]) 
				{cout<<"-1"<<endl<<i<<endl;return 0;}
		} 
	}
	cout<<0<<endl;
	return 0;
}

然而这样只有40分。。。

我们又发现外层循换i=1-m是满足单调性的

SO,可以二分一下x(x是指1-x都满足条件)

就很愉快的ac了

#include <iostream>
#include <cstdio>
#include <cstring>
 
using namespace std;
const int maxn=1000005;
int d[maxn],s[maxn],t[maxn],r[maxn];
int c[maxn];int n,m;
int ok(int x)
{
	memset(c,0,sizeof(c));
	for(int i=1;i<=x;i++)
	{
		c[s[i]]+=d[i];c[t[i]+1]-=d[i];	
	} 
	int sum=0;
	for(int i=1;i<=n;i++)
	{
		sum+=c[i];if(sum>r[i]) return 0;
	}
	return 1;
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++) scanf("%d",&r[i]);
	for(int i=1;i<=m;i++)
	{
		scanf("%d%d%d",&d[i],&s[i],&t[i]);
	}
	int l=0,r=m;int ans=-1;
	while(l<=r)
	{
		int mid=(l+r)/2;
		if(ok(mid)) {ans=mid;l=mid+1;}
		else r=mid-1;
	}
	//printf("%d",ans);
	if(ans==m) {printf("%d\n",0);}
	else {printf("-1\n%d",ans+1);}
	return 0;
 } 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172065.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mfc控件工具栏怎么打开_Qt界面库

    mfc控件工具栏怎么打开_Qt界面库BCGControlBarProfessionalforMFC和BCGSuiteforMFCv33.0正式发布!此版本包括对每个显示器DPI感知的支持等,欢迎下载相关产品体验~

    2022年10月8日
    4
  • RC有源滤波器之带通滤波器(四)

    RC有源滤波器之带通滤波器(四)记录一下,方便以后翻阅~过去的滤波器都是由R、L、C等无源元件组成,称为无源滤波器。现在的滤波器大都是由R、C元件与有源器件(如运算放大器)组成,称为RC有源滤波器。常见滤波器类型有低通滤波器、高通滤波器、带通滤波器、带阻滤波器、全通滤波器等。RC有源带通滤波器带通滤波器允许某一频率范围内的信号通过,衰减或抑制此频率范围以外的频率信号。理想带通滤波器的模频特性如下图所示,Wc2和Wc1分别为上下截止频率。RC有源带通滤波器器电路如下图所示:电压传输函数为:其模:…

    2022年6月7日
    48
  • 学习笔记——STM32摄像头OV7725(一)

    学习笔记——STM32摄像头OV7725(一)OV7725简介在各类信息中,图像含有最丰富的的信息,作为机器视觉领域的核心部件,摄像头被广泛地应用在安防、探险、以及车牌检测等场合。其按照输出信号的类型可以分为数字和模拟摄像头,按照材料构成可以分为CCD和CMOS。模拟摄像头的感光器件一般维持在752(H)*582(V)像素指标左右。由于CCD的像素由MOS电容组成,读取电荷信号是需要使用电压相当大的(至少2V)的二相/三相/四相的时序脉…

    2022年9月24日
    2
  • ideamaven仓库设置_搭建maven仓库

    ideamaven仓库设置_搭建maven仓库1、Maven下载在maven官网下载maven安装:http://maven.apache.org/download.cgi下载之后解压到安装路径:完成安装。2、Maven本地仓库配置在本地新建本地仓库文件夹,替代默认新建在系统盘的仓库地址,因为随着时间,仓库会越来越大,所以建议自己新建一个本地仓库:Maven远程库也是位于网络上的存储库。因为maven在获取需要的jar包时会首先从本地仓库获取,当本地仓库不存在需要的jar包时会从setting.xml的…

    2022年9月23日
    2
  • 手机运行的python_运行python程序的两种方式

    手机运行的python_运行python程序的两种方式前言在手机上运行Python需要用一个软件,叫QPython3L,当然还有别的软件也是可以运行Python的,不过我认为QPython3L是其中相对较好的一个。首先声明一下,我也只是会简单的使用有了它,就可以实现用手机和电脑进行通信了,比如在手机用Socket给电脑发指令,电脑根据收到的指令去执行不同的函数。苹果手机有没有我也不知道,可以自己搜一下如何下载我是在酷安下的,直接搜索qpython3即…

    2022年8月12日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号