首页 > 其他分享 >【LGR-150-Div.2】洛谷 8 月月赛 I & RiOI Round 2

【LGR-150-Div.2】洛谷 8 月月赛 I & RiOI Round 2

时间:2023-08-05 19:13:16浏览次数:55  
标签:150 洛谷 int ll long 二进制 ans Div.2 define

T1

一直没有详细看过位运算的我瑟瑟发抖。出题人给了帮助(有用但是不多)。直接讲考试想法:
首先,手玩样例后,果断猜测:将两个数转化为二进制之后,把头对齐,然后找出不同位,再加上二者位数之差。结果:\(0Pts\)
之后,又想了很久,发现了 按位与等价于将原来二进制数中的1变为0,按位或等价于将原来二进制数中的0变为1。但是,当时脑子抽了,又认为按位与可以实现0变1,按位或可以实现添位。前者错误,后者没必要。这样一来,结果:\(0Pts\)。
终于,又过了很久,才发现自己的问题。得出正解:将两个二进制数尾部对齐,然后对于短的,前面补齐0,使二者等长。然后一位一位判断,0变1和1变0各自只需要1次操作就能全部实现,所以只需统计这种情况出现没。结果:\(100Pts\).

#include <bits/stdc++.h>
#define ll long long
#define re register
using namespace std;
const int N=10000+5, INF=0x3f3f3f3f;
ll T,n,m; 
string To2(ll n){
	string s,l;
	ll ts=n;
	while(ts!=0){
		if(ts%2==0){
			s+='0';
		}
		else{
			s+='1';
		}
		ts/=2;
	}
	return s;
}//转二进制
int main() {
	cin>>T;
	while(T--){
		scanf("%lld%lld",&n,&m);
		string k1=To2(n),k2=To2(m);
		
		int s1=k1.size(),s2=k2.size(),ans=0;
		if(s1<s2)for(int i=s1;i<=s2-1;i++)k1=k1+'0';
		else if(s1>s2)for(int i=s2;i<=s1-1;i++)k2=k2+'0';//补齐
		s1=k1.size(),s2=k2.size();
		
		int a=0,b=0;//a:0->1 b:1->0
		for(int i=0;i<s1;i++){
			if(k1[i]!=k2[i]){
				if(k2[i]=='1')a=1;
				else b=1;
			}
		}
		printf("%d\n",a+b);
	}
	return 0;
}

用时:1.92h

T2

题目不难理解,但是我们可以注意到,其实矩阵的各个数字位置在哪都是一样的,都可以通过移动使得每一列上的数字一样(注意不是矩阵每个数都相同),但是这样已经足够了。又要使尽可能多的列的最大值大于\(v\),那就尽可能让大的数分开。
可以对于每一次询问,都暴力搜索原矩阵,得出答案。可得\(50Pts\)。
剪枝其实也很简单(但是本蒟蒻最后时刻才发现),当找到的大于\(v\)的数已经比\(n\)多后,后面的就不用再搜索了。得分:\(100Pts\)。
(试图用vector直接过的屑)

#include <bits/stdc++.h>
#define ll long long
#define re register
using namespace std;
const int N=1000+5, INF=0x3f3f3f3f;
ll n,q;
ll x;
ll v;
vector<ll>V;
int main(){
	scanf("%lld%lld",&n,&q);
	for(re ll i=1;i<=n;i++)
		for(re ll j=1;j<=n;j++){
			scanf("%lld",&x);
			V.push_back(x);
		}
	sort(V.rbegin(),V.rend());
	/*for(int i=0;i<V.size();i++)cout<<V[i]<<' ';*/
	
	for(re ll i=1;i<=q;i++){
		scanf("%lld",&v);
		ll ans=n;
		for(re ll j=0;j<V.size();j++){
			if(V[j]<v||j>n){
				ans=j;
				break;
			}
		}
		if(ans>=n)ans=n;
		printf("%lld\n",ans);
	}
	return 0;
}

用时:3.9h

T3

嘎嘎不会,嘎嘎骗分,看到熟悉的菊花图和链表,直接选一个嘎嘎做(菊花在前,菊花有限)(doge)

#include <bits/stdc++.h>
#define ll long long
#define re register
using namespace std;
const int N=1000000+5, INF=0x3f3f3f3f;
int n;
vector<int> G[N];
int a[N];
//Jvhua
int ru[N];
int main(){
	cin>>n;
	
	for(int i=1;i<=n-1;i++){
		int x,y;cin>>x>>y;
		ru[x]++;ru[y]++;
		G[x].push_back(y);
		G[y].push_back(x);
	}
	if(ru[1]==n-1){
		cout<<-1<<endl;
	}else{
		if(n%2==0)cout<<-1<<endl;
		else{
			int v=G[1][0],t=0;
			for(int i=1;i<=n;i++){
				if(i==1||i==v)cout<<0<<' ';
				else if(t<(n-2)/2){
					t++;cout<<0<<' ';
				}
				else cout<<1<<' ';
			}
		}
	}
	return 0;
}

用时:3.6h

期望得分:IOI赛制什么期望得分(
实际得分:205Pts
rk:867
传送门

标签:150,洛谷,int,ll,long,二进制,ans,Div.2,define
From: https://www.cnblogs.com/FaceLuck/p/17608444.html

相关文章

  • LGR-147-Div.3】洛谷网校 7 月普及组月赛 & yLOI2022 总结
    Upd:2023/8/5补T1普及组的题,而且T1,而且叫签到题。所以非常简单,入门难度。没什么好说的。就是统计大写,小写和字母个数。#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=100+5;strings;intmain(){ cin>>s; intx=0,y=0,z=0; for(inti=......
  • 洛谷 P1553 数字反转(升级版)
    题目描述给定一个数,请将该数各个位上数字反转得到一个新数。整数反转是将所有数位对调。小数反转是把整数部分的数反转,再将小数部分的数反转,不交换整数部分与小数部分。分数反转是把分母的数反转,再把分子的数反转,不交换分子与分母。百分数的分子一定是整数,百分数只改变数字......
  • 洛谷 P7911 [CSP-J 2021] 网络连接 题解
    写在前面一道普及级别的题目。CSP-J全国统一命题2021年第三题。本题解来自于一位真正的大佬。传送门https://www.luogu.com.cn/blog/xyf007/solution-p7911。题面信息来源于洛谷。请访问https://www.luogu.com.cn/problem/P7911。声明:本题解非商业用途,一切侵权行为请联系作......
  • nfls15095 Atcoder-abc123_d 蛋糕
    Atcoder-abc123_dAT小卖部从下学期开始售卖带有数字形状的蛋糕,\(X\),\(Y\)和\(Z\)种蛋糕分别带有\(1\)形,\(2\)形和\(3\)形蜡烛,而且每个蛋糕都有美味值,如下所示:带有\(1\)形蜡烛的美味值有:\(A_1,A_2,\cdots,A_X\)带有\(2\)形蜡烛的美味值有:\(B_1,B_2,\cdots,B_Y\)......
  • 洛谷 U321190 麻将 加强加强版 题解
    Description给定一副\(k\)张牌的麻将牌,求能「听」哪些牌。对于所有数据,\(1\leqk\leq2\times10^5\)。link:https://www.luogu.com.cn/problem/U321190Solution算法零枚举「听」的牌,用状压DP或者贪心判断。时间复杂度\(\mathcal{O}(2^n\text{poly}(n))\)或\(\mathca......
  • 洛谷-P9485 题解
    写在前面:这是蒟蒻交的第一篇绿题题解(大祭),因为线性做法比较难想,本篇会着重讲述用RMQ问题求解,并尽可能用清晰明了的图片和简易的文字讲明白。正文最坏时间复杂度:\(\mathcal{O}(\sumn+\log\sumn)\)在求解之前,先让我们想个问题,如何求解积水格数?再简单点,对于每个\(i\),其积水......
  • 洛谷 P9489 ZHY 的表示法 题解
    Description给定\(\{x_n\}\),\(y\)为任意实数,求出在\([l,r]\)内\(\displaystyle\sum_{i=1}^{n}\lfloor\dfrac{y}{x_i}\rfloor\)有多少种取值。link:https://www.luogu.com.cn/problem/P9489Solution可以表示出的取值一定能被为某个\(x_i\)的倍数的\(y\)表示出。根据......
  • Round 889 Div.2 意识流简记。
    太丢人了!D2D狂吃6发罚时,D2C都不会!不过无所谓,反正老年选手就是打着玩。D2A.答案为\(\lceil\frac{\sum_{i=1}^n[a_i=i]}{2}\rceil\)。D2B.我不会啊,猜了一下只需要枚举\(\le2000\)的,莫名其妙过了。D2C1/C2.不会。D2D.考虑动态维护前\(i\)个能凑出的数的集合,适时......
  • 洛谷 P3243 [HNOI2015] 菜肴制作 - toposort 需自己理解翻译题面
    P3243[HNOI2015]菜肴制作题目描述知名美食家小A被邀请至ATM大酒店,为其品评菜肴。ATM酒店为小A准备了\(n\)道菜肴,酒店按照为菜肴预估的质量从高到低给予\(1\)到\(n\)的顺序编号,预估质量最高的菜肴编号为\(1\)。由于菜肴之间口味搭配的问题,某些菜肴必须在另一些......
  • 洛谷 P9479 - [NOI2023] 桂花树
    显然,条件一等价于在\(T'\)中,\(1\simn\)组成的虚树等于它本身。条件二等价于\(1\simi\)组成的虚树上点的标号不超过\(i+k\)。我们考虑在原树的基础上依次添加\(n+1\simn+m\)这\(m\)个点。添加一个点\(i\)时,它与原树的位置关系可能有以下几种:挂在原树上某......