首页 > 其他分享 >Codeforces Round 983 (Div. 2)(EF未改)

Codeforces Round 983 (Div. 2)(EF未改)

时间:2025-01-21 21:10:19浏览次数:1  
标签:while cout int 983 EF Codeforces cin -- flag

有点爆。感觉自己速度又慢效果又不好。

A

简单题。
最多就尽量让 \(1,0\) 搭配起;最少就是尽量搭配\(0,0\) 和 \(1,1\)。

B

也是简单题,想一下就可以了。
首先,想要保证给定的是中位数,最简单的就是比它小的分一组,比它大的分一组,自己分一组。但是因为组长度必须是奇数,所以只有在偶数位置上才行。那奇数可以考虑分5段。很明显,当在第一个和最后一个位置时,分不出五段,但是我们发现只有一个数时,在开头和结尾才合法,特判即可。

C

比较直接,但是我犯了一个错,硬控自己。
首先读完题,就可以发现,我们要做的是让最小值加次小值大于最大值。所以钦定最大值为 \(a_i\) ,就可以计算出是第一个严格大于 \(a_i/2\) 的位置,就可以计算答案。

点击查看代码
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int t,n,m,a[N];
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>n;
		for(int i=1;i<=n;i++)cin>>a[i];
		sort(a+1,a+n+1);
		int ans=n;
		for(int i=1;i<=n;i++)
		{ 
			int res=(n-i),k=(a[i]/2)+1;
			int j=lower_bound(a+1,a+n+1,k)-a;
		//	cout<<"** "<<j<<'\n';
			res+=j-1;
			if(j!=1)
			{
				if(a[j-1]+a[j]>a[i])res--;//有一个比它小的数可以不改
			}		
			ans=min(ans,res); 
		}
		cout<<ans<<'\n';
	}
	return 0;
 } 

错误原因:
1.最开始只增大最小值,不缩小最大值
2.应该是严格大于,不能等于

D

交互题,不要再用 \(cin,cout\) 了。改了半天发现交互错了。
首先想要直接顺着做,没做出来(只是因为我菜)。然后倒着做发现树一定上面几层和一条很长的链,所以从结尾开始找,一直找到一个链的最上端,用双指针扫一遍即可(一个扫当前节点,一个扫父亲)。
这是赛时做法有点累赘,直接双指针即可 \(O(n)\) 完成。

点击查看代码
#include <bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int t,n,fa[N],cnt;
int check(int x,int y)
{
	cout<<"? "<<x<<" "<<y<<endl;
	int jg; cin>>jg;
	return jg;
}
int main()
{
	//cin.tie(0)->sync_with_stdio(0);
	cin>>t;
	while(t--)
	{
		cin>>n;
		int i,flag=1;
		n-=1;
		for(i=n-1;i>=1;i--)
		{
			if(check(i,n))
			{
				flag=i+1;
				break;
			}
			else fa[i+1]=i;
		}
		int j=flag-2;
		for(i=flag;i>=2;i--)
		{
			while(check(i,j))j--;
			fa[i]=j--;
			if(j<=0)break;
		}
		cout<<"! ";
		for(int z=1;z<=n;z++)
		
			cout<<fa[z]<<" "; 
			fa[z]=0;
		}
		cout<<endl;
	//	if(cnt>2*(n+1)-6)cout<<"No"; 
	}
	return 0;
}

E

赛时做到了方程那一步,不过没见识过稀疏矩阵高消,所以以为高消做不了,给自己卡死了。
明天看有没有时间来改。

F

博弈论+dp看出来了,一开始正着想发现不好做,实际上应该倒着来,这样才能确定当前的状态。
明天再说

标签:while,cout,int,983,EF,Codeforces,cin,--,flag
From: https://www.cnblogs.com/storms11/p/18684423

相关文章

  • IAEPC Preliminary Contest (Codeforces Round 999, Div. 1 + Div. 2)
    A.KevinandArithmetic题意:给你\(n\)个数,你一开始有一个\(x=0\),每次你让\(x\)加上一个没用过的数,然后\(x\)会一直除二直到变成奇数。如果你加上一个数后能除2,分数加1,问分数最大多少。奇数后面加奇数才能是偶数,但一开始\(x\)是零,那么需要一个偶数,否则只能浪费一个奇数。所......
  • 元强化学习算法—— EMCL —— 《Adapting to Dynamic LEO B5G Systems Meta-Critic L
    原文地址:https://orbilu.uni.lu/bitstream/10993/52996/1/Adapting_to_Dynamic_LEO-B5G_Systems_Meta-Critic_Learning_Based_Efficient_Resource_Scheduling.pdfPS:大概距离这个论文是fake的,无法做验证,其中对引用的算法的描述也是错的,基于一堆错误的东西能搞错对的东......
  • Codeforces Round 999 比赛记录
    前情提要这个菜鸡CF上了\(\color{darkcyan}Specialist\),心情大好,正好赶上放假,决定打一场CF。赛时记录A上来脑子抽了,吃了一发罚时。发现写错了一种情况,改过来就过了。感觉并不是一个好的开始。B竟成为本人唯一一遍过的题,虽然写的时候有点慌。CDP。一开始认为空间不够,但发......
  • 解决 Jenkins 环境下 Lingui 构建报错 "btoa is not defined"
    问题描述在 JenkinsCI环境中构建React 项目时,遇到了以下错误:Error:btoaisnotdefined11|};12|constQkImagePreview=(props:QkImagePreviewType)=>{>13|const{i18n,t}=useLingui();|^^^^^^^^^^^14|co......
  • Vue3 在defineProps中某个属性的默认值使用多语言i18n 异常defineProps()` in <script
    原代码<scriptsetuplang="ts">constprops=defineProps({modelValue:{type:Array,default:[]},typeName:{type:String,default:t('TypeName')},disabled:{type:Boolean,default:false......
  • 请解释下href="javascript:void(0)"和href="#"的区别是什么?
    在前端开发中,href="javascript:void(0)"和href="#"都是常见的用于阻止链接默认行为的技巧,但它们之间有一些重要的区别。功能:href="javascript:void(0)":这个语句会执行JavaScript函数void(0),该函数返回undefined,从而阻止链接的默认行为(即跳转到新页面或重新加载当前......
  • vue3 tsx ref获取dom写法
    在Vue3中使用TSX并结合ref来获取DOM元素或组件实例,可以通过Vue提供的组合式API(CompositionAPI)来实现。Vue3支持JSX/TSX语法,允许你在函数式组件中编写类似JSX的代码。下面是一个具体的示例,展示了如何在TSX中使用ref来获取DOM元素。步骤安装必要的依赖......
  • Codeforces Round 998 (Div. 3) 部分题解
    写题解的时候这场在评测,就不放代码了。E.GraphComposition题意给两个无向简单图,对图\(1\)添加若干条边或删除若干条边,使得两图的连通性一致,最少需要变更多少条边。题解求出图\(2\)的连通性,考虑图\(1\)的所有边,若违背了图\(2\)联通性的要删除(图\(2\)不联通但图\(......
  • ABC 389(EF)
    E一道感觉非常巧妙的二分。可以将每种商品分开来看:第\(k\)次买商品\(P_i\)时,价格为\((2k-1)P_i\)。这样,就将每种商品拆分为了多个实体的商品,并有自己的价格。想最大化购买物品的总数,一定是每次购买时贪心选择当前所有物品中最便宜的那个。但模拟一定会\(TLE\),可以枚举购买过程......
  • Codeforces Round 998 (Div. 3)
    题目链接:CodeforcesRound998(Div.3)总结:复建,Cwa两发,E读假题了。A.Fibonaccinesstag:签到Solution:简单模拟一下即可。voidsolve(){inta[5];for(inti=0;i<5;i++){if(i==2){continue;}cin>>a[i];......