首页 > 其他分享 >「杂题乱刷」CF978G

「杂题乱刷」CF978G

时间:2023-12-16 19:44:42浏览次数:39  
标签:map forl CF978G long 杂题 sum define

题目链接

简单贪心。

由于我们需要判断无解情况,于是我们可以在做的过程中记录答案。

比较容易发现,对于每个时间段,我们肯定是优先复习日期较近的考试的,贪心了这一点,就能轻松 AC 了。

参考代码:

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define map unordered_map
#define forl(i,a,b) for(register long long i=a;i<=b;i++)
#define forr(i,a,b) for(register long long i=a;i>=b;i--)
#define lc(x) x<<1
#define rc(x) x<<1|1
#define cin(x) cin>>x
#define cout(x) cout<<x;
#define lowbit(x) x&-x
#define pb push_back
#define pf push_front
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define endl '\n'
#define QwQ return 0;
long long n,m,ans[100010];
struct node{
	long long l,r,sum;
}a[100010];
int main()
{
	IOS;
	cin>>n>>m;
	forl(i,1,m)
		cin>>a[i].l>>a[i].r>>a[i].sum;
	forl(i,1,n)
	{
		long long id=0,R=1e18;
		forl(j,1,m)
		{
			if(a[j].l<=i && a[j].r>=i && a[j].sum && a[j].r<R)
				id=j,R=a[j].r;
			if(a[j].r==i)
			{
				id=1e18;
				R=j;
				break;
			}
		}
		if(id==0)
			ans[i]=0;
		else if(id==1e18)
		{
			if(a[R].sum)
			{
				cout<<-1;
				QwQ;
			}
			else
				ans[i]=m+1;
		}
		else
			a[id].sum--,ans[i]=id;
	}
	forl(i,1,n)
		cout<<ans[i]<<" ";
	QwQ;
}

标签:map,forl,CF978G,long,杂题,sum,define
From: https://www.cnblogs.com/wangmarui/p/17906221.html

相关文章

  • 【杂题乱写】12 月北京省选 DP 专题训练
    有一部分题目是模板题,就不放了。D.Luogu-P5336THUSC2016成绩单考虑区间DP,由于操作的特殊性,我们需要设计含有区间最值的状态,设\(f_{l,r,i,j}\)表示区间\([l,r]\)中的所有数只保留值域\([i,j]\)中的最小代价,\(g_{l,r}\)为将区间\([l,r]\)的所有数都删去的最小代价。......
  • 【杂题乱写】12 月北京省选 DP 专题训练
    有一部分题目是模板题,就不放了。D.Luogu-P5336THUSC2016成绩单考虑区间DP,由于操作的特殊性,我们需要设计含有区间最值的状态,设\(f_{l,r,i,j}\)表示区间\([l,r]\)中的所有数只保留值域\([i,j]\)中的最小代价,\(g_{l,r}\)为将区间\([l,r]\)的所有数都删去的最小代价。......
  • 【杂题乱写】12 月北京省选 DP 专题训练
    有一部分题目是模板题,就不放了。D.Luogu-P5336THUSC2016成绩单考虑区间DP,由于操作的特殊性,我们需要设计含有区间最值的状态,设\(f_{l,r,i,j}\)表示区间\([l,r]\)中的所有数只保留值域\([i,j]\)中的最小代价,\(g_{l,r}\)为将区间\([l,r]\)的所有数都删去的最小代价。......
  • 【杂题乱写】12 月北京省选 DP 专题训练
    有一部分题目是模板题,就不放了。D.Luogu-P5336THUSC2016成绩单考虑区间DP,由于操作的特殊性,我们需要设计含有区间最值的状态,设\(f_{l,r,i,j}\)表示区间\([l,r]\)中的所有数只保留值域\([i,j]\)中的最小代价,\(g_{l,r}\)为将区间\([l,r]\)的所有数都删去的最小代价。......
  • 【杂题乱写】12 月北京省选 DP 专题训练
    有一部分题目是模板题,就不放了。D.Luogu-P5336THUSC2016成绩单考虑区间DP,由于操作的特殊性,我们需要设计含有区间最值的状态,设\(f_{l,r,i,j}\)表示区间\([l,r]\)中的所有数只保留值域\([i,j]\)中的最小代价,\(g_{l,r}\)为将区间\([l,r]\)的所有数都删去的最小代价。......
  • 【杂题乱写】12 月北京省选树上问题专题训练
    A.Luogu-P9058Ynoi2004rpmtdq解密:RangePairMininumTreeDistanceQuery支配对问题,这里的支配是若\(L\lel<r\leR\),且\(\mathrm{dist}(l,r)\le\mathrm{dist}(L,R)\),那么\((l,r)\)支配\([L,R]\)。考虑点分治,在过程中对每个分治中心\(ct\)以及节点\(i,j\),默认\(......
  • 12月CWOI杂题
    ?怎么12月都过一半了?C0425【1202A组】模拟测试A【1202A组】景点游览一个垃圾的\(\mathcal{O}(n\sqrt{n})\)做法。先缩点,然后拓扑,求出每个点能到达的所有点中最大的和最小的,记为\(R_i\)和\(L_i\)。那么一段区间\([l,r]\)合法的条件就是\(\min\limits_{i=l}^rL_i=l......
  • 「杂题乱刷」CF1272D
    题目链接CF1272DRemoveOneElement题意简述给定一个长度为\(n\)的序列,你需要求出至多删除一个数后的这个序列的最长上升子串。解题思路首先我们可以想一下这题的弱化版,给定一个长度为\(n\)的序列,你需要求出至多删除一个数后的这个序列的最长上升子序列。这题我们可以......
  • 【杂题乱写】12 月北京省选杂题选讲 1
    F.CodeForces-1446D2FrequencyProblem(HardVersion)*3000如果全局众数不唯一,则答案是\(n\)。可以发现一个性质:答案区间的众数一定包含全局众数。否则一定可以扩展这个区间直到全局众数成为区间众数,如果此时区间众数出现次数又增加了,那么可以继续扩展。仔细思考这个性质......
  • 2023.12 杂题
    Ifoundithard,it'shardtofind.Ohwellwhatevernevermind.目录CF1904ETreeQueriesCF1904FBeautifulTreeABC332GNotTooManyBallsCF1904ETreeQueriesTag:T-欧拉序;S-线段树。注意到\(\sumk\)和\(n\)同级,大抵是一个和\(k\)相关的做法,虚树大概是不可行的,......