首页 > 其他分享 >【LGR-149-Div.3】洛谷基础赛 #2 & qw Round -1

【LGR-149-Div.3】洛谷基础赛 #2 & qw Round -1

时间:2023-08-12 18:11:59浏览次数:48  
标签:洛谷 qw int long 149 re last1 last2 define

T1

签到。

T2

送分题。

T3

大模拟,但是TLE两个点。

#include <bits/stdc++.h>
#define ll long long
#define int long long
#define re register
using namespace std;
const int N=1e5+5, INF=0x3f3f3f3f;
int n;
queue<string>Q;
map<string,int> zt;//0 不在;1 排队;2 游玩; 
string last1,last2;
inline void START(int i){
	if(i!=1){
		if(last1!="")
		Q.push(last1),zt[last1]=1;
		if(last2!="")
		Q.push(last2),zt[last2]=1;
		if(!Q.size()){
			printf("Error\n");return ;
		}
		string player1=Q.front();Q.pop();
		if(!Q.size()){
			last1=player1;last2="";
			zt[player1]=2;
			cout<<player1<<"\n";
		}else{
			string player2=Q.front();Q.pop();
			last1=player1;last2=player2;
			zt[player1]=2;zt[player2]=2;
			cout<<player1<<' '<<player2<<"\n";
		}
	}else printf("Error\n");
}
inline void ARRIVE(string x){
	if(zt[x]==1||zt[x]==2)printf("Error\n");
	else{
		Q.push(x);zt[x]=1;
		printf("OK\n");
	}
}
inline void LEAVE(string x){
	if(zt[x]==1){
		zt[x]=0;
		queue<string>Q2;
		while(Q.size()){
			if(Q.front()!=x)Q2.push(Q.front());
			Q.pop();
		}
		Q=Q2;
		printf("OK\n");
	}else printf("Error\n");
}
signed main(){//scanf & printf: "%lld"
	/*freopen("in.txt","r",stdin);
	freopen("out.txt","w",stdout);*/
	ios::sync_with_stdio();
	cin>>n;
	for(re int i=1;i<=n;i++){
		string s;cin>>s;
		if(s=="start")START(i);
		else if(s=="arrive"){
			string k;cin>>k;
			ARRIVE(k);
		}else{
			string k;cin>>k;
			LEAVE(k);
		}
	}
	return 0;
}

很大概率是LEAVE操作中删除元素太慢了。等个正解。

T4

直接暴力结果超时,不会优化,发呆两个小时。捡漏40分。(似乎用二分查找答案能70分了)

#include <bits/stdc++.h>
#define ll long long
#define int long long
#define re register
using namespace std;
const int N=1e6+5, INF=0x3f3f3f3f;
int n,m,a[N],b[N];
int now[N];
bool check(int k){
	memset(now,0,sizeof(now));
	for(re int i=1;i<=m;i++){
		int l=b[i]-k,r=b[i]+k;
		if(l<1)l=1;if(r>n)r=n;
		for(re int j=l;j<=r;j++){
			int d=abs(j-b[i]);
			if(k-d>0)
			now[j]+=(k-d);
		}
	}
	for(int i=1;i<=n;i++)
		if(now[i]<a[i])return 0;
	return 1;
}

signed main(){//scanf & printf: "%lld"
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
	for(int i=1;i<=m;i++)scanf("%lld",&b[i]);
	if(n==1){
		cout<<a[1]<<endl;return 0;
	}
	if(m==1){
		int maxn=-1;
		for(int i=1;i<=n;i++){
			maxn=max(abs(b[1]-i)+a[i],maxn);
		}
		cout<<maxn<<endl;
		return 0;
	}
	for(int i=0;;i++){
		if(check(i)){
			printf("%lld\n",i);
			return 0;
		}
	}
	return 0;
}

得分:100+100+80+40=320
排名:rk518 /3926
用时:2.22h
弱(
传送门

标签:洛谷,qw,int,long,149,re,last1,last2,define
From: https://www.cnblogs.com/FaceLuck/p/17625202.html

相关文章

  • 洛谷 P7739 - [NOI2021] 密码箱
    感觉难度和今年D2T2差不多。首先一个很显然的事情是,每一步得到的分数的分子分母都是互质的,证明参考SBT。而最后答案要求我们将分子分母都求出来而不是求分数值,所以可以很明显的想到将分数当成一个二元组然后维护变换。考虑从右往左扫,假设当前分数为\(\dfrac{x}{y}\),那么扫过......
  • 洛谷-P9496 题解
    正文在讲解之前,先来几种简单情况:让\(n=1\)转变成\(m=0\),只需要让\(n\land0\)即可;让\(n=0\)转变成\(m=1\),只需要让\(n\lor1\)即可。将\(n\)扩展成更大的。对于\(n\)二进制的每一位数,只需要按上述情况处理即可,而由于可以对任意数进行位运算,所以相同类型的位运......
  • Tarjan 例题:洛谷P1407 [国家集训队] 稳定婚姻
    在洛谷中查看题意:自己读一下,大致就是\(2n\)个点,每个点编号为\(1-2n\),\(\lfloor编号/2\rfloor\)相同的点连条边。然后再给\(m\)条边。问:将每个\(\lfloor编号/2\rfloor\)相同的点间连的边断开,还能不能使每个编号为奇数的点都有一个编号为偶数的点对应。这个......
  • 洛谷 P3387 【模板】缩点
    在洛谷中查看所有思考都在代码,可以结合代码思考谢谢~#include<bits/stdc++.h>usingnamespacestd;constintN=1e4+5;intn,m,val[N];intdfn[N],low[N],num,col[N],cnt;//col记录每个点属于哪个联通分量//num记录遍历时间cnt记录缩点完后有多少个点in......
  • 洛谷 CF572B题解
    思路首先,将SELL和BUY交易数据分别存放在两个桶。接下来,从小到大遍历。取出最小的\(s\)个:从大到小遍历,取出最大的\(s\)个。分别存放在queue和stack中,如果不到\(s\)就取完为止。最后,输出queue和stack中的所有元素即可。代码实现:#include<bits/stdc++.h>usi......
  • 洛谷 P1336 最佳课题选择 题解
    P1336最佳课题选择题解状态:考虑\(f_{i,j}\)表示前\(i\)种论文里面,一共写了\(j\)篇,的最少花费时间。转移策略:我们一次考虑每一种论文写多少篇。假设写\(k\)篇,\(k\in[0,j]\cap\mathbb{Z}\),有转移方程:\[f_{i,j}=min(f_{i-1,j-k}+cost(i,k)),k\in[0,j]\cap\mathbb{......
  • 洛谷 P6010 - [USACO20JAN] Falling Portals P
    先考虑怎么对一组询问求解答案。容易想到一种贪心策略:如果\(a_{q_i}<a_i\),那么我们肯定希望自己能够尽量快地下落,因此如果遇到一个下落速度大于当前世界下落速度的传送门我们肯定就会进那个世界,如此走下去知道能够传送到世界\(q_i\)为止。对于\(a_{q_i}>a_i\)的情况也类似,只......
  • 洛谷 P8500 - [NOI2022] 冒泡排序
    显然将权值离散化是没有问题的,因为必然存在一组最优解,满足每个\(a_i\)都取自于某个\(V_i\),于是不管三七二十一先将\(V_i\)离散化了再说。考虑从部分分入手逐步分析这道题:特殊性质A:\(V_i=1\)相当于这个区间中的数必须是\(1\),先将这些数去掉不管,紧接着考虑\(V_i=0\)的......
  • 【Qt6】QWidgetAction 的使用
    在开始主题前,先看一个C++例子:#include<iostream>structData{inta;intb;};//注意这里structData*s;voiddoSome(){Datak;k.a=100;k.b=300;//注意这里,会出大事s=&k;}intmain(){//先调用了函数doSo......
  • 【必看!】阿里云推出QWen-7B和QWen-7b-Chat,开放免费商用!
    阿里云于8月3日宣布开源两款重要的大型模型——QWen-7B和QWen-7b-Chat。这两款模型的参数规模达到了令人瞩目的70亿,并且已经在HuggingFace和ModelScope平台上开放,并可免费商用。以下是相关链接:GitHub项目主页:https://github.com/QwenLM/Qwen-7BHuggingFace:https://huggingface......