列表

详情


NC54757. ZN的快乐时光

描述

ZN每天的快乐时光除了敲代码,就是快乐的吃炸鸡了!

这天,ZN又写出了一道洛谷上最高难度的题,刚刚从bug阴影里走出来的他非常开心,当即回寝室点了一份炸鸡快乐了起来。ZN发现这份炸鸡中有n个炸鸡块,编号从1到 n;有 t 包琥珀酱,ZN每次可以选择一个区间,将编号在l到r之间的炸鸡都涂上一层酱。

ZN想从酱最多的炸鸡块开始吃,即被涂次数最多的炸鸡块。你能帮ZN计算一下每块炸鸡都被涂了多少次吗?

输入描述

第一行输入两个整数 ,n代表炸鸡块的数量, t代表ZN给炸鸡块涂酱的次数。

接下来 t 行,每行输入两个整数 ,代表该次ZN涂酱的左右端点,即编号在区间内的炸鸡块都会被涂一次酱。

输出描述

输出一行,包含n个数 ,代表编号为i的炸鸡被涂的次数。

示例1

输入:

5 2
1 2
4 5

输出:

1 1 0 1 1

说明:

起始状态:[0, 0, 0, 0, 0]

涂完第一次:[1, 1, 0, 0, 0]

涂完第二次:[1, 1, 0, 1, 1]

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 2ms, 内存消耗: 300K, 提交时间: 2022-10-10 18:50:28

#include"stdio.h"
int n;
int t;
int count[101];
int main(){
	scanf("%d %d",&n,&t);
	int i,l,r;
	for(i=1;i<=t;i++){
		scanf("%d %d",&l,&r);
		while(l<=r){
			count[l]+=1;
			l++;
		}
	}
	for(i=1;i<=n;i++)
	{
		printf("%d ",count[i]);
	}
} 

C(gcc 7.5.0) 解法, 执行用时: 2ms, 内存消耗: 312K, 提交时间: 2022-11-04 19:18:49

#include<stdio.h>
int main()
{
	int n,t,l,r,ji[100]={0},i,j;
	scanf("%d%d",&n,&t);
	for(i=0;i<t;i++)
	{
		scanf("%d%d",&l,&r);
		for(j=l-1;j<r;j++)
		{
			ji[j]++;
		}
	}
	for(i=0;i<n;i++)
	{
		printf("%d ",ji[i]);
	}
	return 0;

}

C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 376K, 提交时间: 2020-08-10 22:03:47

#include <iostream>
using namespace std;
int main()
{
    int n,t,i,l,r,s[105]={0};
    cin>>n>>t;
    while(t--){
        cin>>l>>r;
        for(i=l;i<=r;i++) s[i]++;
    }
    for(i=1;i<=n;i++) cout<<s[i]<<" ";
    return 0;
}

Python3 解法, 执行用时: 43ms, 内存消耗: 4580K, 提交时间: 2022-03-03 10:38:02

n,t=map(int, input().split())
list=[0]*n
for i in range(t):
    l,r=map(int, input().split())
    for j in range(l-1,r):
        list[j]+=1
for i in range(n):
    print(list[i],end=' ')

上一题