首页 > 其他分享 >第七届传智杯初赛+重现赛总结

第七届传智杯初赛+重现赛总结

时间:2024-12-22 17:28:36浏览次数:8  
标签:传智杯 string int cin long 初赛 using 第七届 define

重现赛题目网站:(2条未读私信) 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ

1.吃糖果(B组、C组)

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,k,count1=0,sum1=0;
int a[200010];
signed main()
{
	cin>>n>>k;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	sort(a,a+n);
	for(int i=0;i<n;i++)
	{
		sum1+=a[i];
		if(sum1<=k)
		{
			count1++;
		}
		else
		{
			break;
		}
	}
	cout<<count1<<endl; 
	return 0;
}

2.汤姆和杰瑞(A组、C组)

#include<iostream>
#define int long long
using namespace std;
signed main()
{
	int a,b;
	cin>>a>>b;
	cout<<b-a<<" "<<b<<endl;
	return 0;
}

3.游游的重组偶数(A组、B组、C组)

发现偶数规律,如果用整形重组注意前导0的情况 

#include<bits/stdc++.h>
#define int long long
using namespace std;
int q;
signed main()
{
	cin>>q;
	while(q--)
	{
		int x;
		cin>>x; //变为偶数,数位存在偶数就行
		int a=0,x1=0,temp=0;;
		bool found=false;
		string s,s1;
		while(x>0)
		{
			a=x%10;
			x/=10;
			if(a%2==0)
			{
				found=true;
				temp=a;
				break;
			}
			x1=x1*10+a;
			s=to_string(x1);
		}
		if(x!=0)
		{
			s1=s+to_string(x)+to_string(temp);	
		}
		else
		{
			s1=s+to_string(temp);
		}
		int temp1=0;
		for(int i=0;i<s1.size();i++)
		{
			temp1=temp1*10+(int)(s1[i]-'0'); 
		}
		if(found)
		{
			cout<<temp1<<endl;	
		}
		else
		{
			cout<<-1<<endl;
		}
	}
	return 0;
}

4.开心还是难过(B组、C组) 

注意处理空格字符串的方式:getline(cin,string);

#include<bits/stdc++.h>
#define int long long
using namespace std;
string str;
signed main()
{
	getline(cin,str);
	int s1=0,s2=0;
	for(int i=0;i<str.size();i++)
	{
		if(str[i]==':'&&str[i+1]=='-'&&str[i+2]=='(')
		{
			s1++;
		}
		else if((str[i]==':'&&str[i+1]=='-'&&str[i+2]==')'))
		{
			s2++;
		}
	}
	if((s1==0)&&(s2==0))
	{
		cout<<"None"<<endl;
	}
	else if(s1<s2)
	{
		cout<<"Happy"<<endl;
	}
	else if(s1==s2)
	{
		cout<<"Just so so"<<endl;
	}
	else if(s1>s2)
	{
		cout<<"Sad"<<endl;
	}
	return 0;
}

5.小欧的平面连线(A组、B组、C组)

规律题,交叉对角象限权值2,交叉单坐标权值1

#include<iostream>
#define int long long
using namespace std;
int n,sum=0;
signed main()
{
	int x,y,sign1=0,sign2=0,sign3=0,sign4=0;
	cin>>n;
	while(n--)
	{
		cin>>x>>y;
		if(x>=0 && y>=0)
		{
			sign1++; //一象限
		}
		else if(x<=0 && y>=0)
		{
			sign2++;
		}
		else if(x<=0 && y<=0)
		{
			sign3++;
		}
		else
		{
			sign4++;
		}
	}
	int temp,temps,temp1,temp2;
	//1,3象限配对  2,4象限配对
	temp=min(sign1,sign3);
	temp1=max(sign1,sign3)-temp; //1,3象限剩余某单个象限点
	temps=min(sign2,sign4);
	temp2=max(sign2,sign4)-temps;
	sum=(temp+temps)*2;
	sum+=min(temp1,temp2); //权值为1配对
	cout<<sum<<endl;
	return 0;
}

6.小红的四子棋(A组、B组、C组)

遍历数组,注意if (a[i][j] == '.') continue; // 忽略

只需要判断有4个棋子相连即可,更多无意义

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
char a[110][110];
signed main()
{
	cin>>n>>m;
	for(int i=1; i<=n; i++)
	{
		for(int j=1; j<=m; j++)
		{
			cin>>a[i][j];
		}
	}
	char a1='1';
	for(int i=1; i<=n; i++)
	{
		for(int j=1; j<=m; j++)
		{
			if (a[i][j] == '.') continue; // 忽略
			if(a[i][j]==a[i+1][j] && a[i][j]==a[i+2][j] && a[i][j]==a[i+3][j])
			{
				if(a[i][j]=='r')
				{
					cout<<"kou"<<endl;
				}
				else
				{
					cout<<"yukari"<<endl;
				}
				return 0;
			}
			else if(a[i][j]==a[i][j+1] && a[i][j]==a[i][j+2] && a[i][j]==a[i][j+3])
			{
				if(a[i][j]=='r')
				{
					cout<<"kou"<<endl;
				}
				else
				{
					cout<<"yukari"<<endl;
				}
				return 0;
			}
			else if(a[i][j]==a[i+1][j+1] && a[i][j]==a[i+2][j+2] && a[i][j]==a[i+3][j+3])
			{
				if(a[i][j]=='r')
				{
					cout<<"kou"<<endl;
				}
				else
				{
					cout<<"yukari"<<endl;
				}
				return 0;
			}
			else if(a[i][j]==a[i+1][j-1] && a[i][j]==a[i+2][j-2] && a[i][j]==a[i+3][j-3] )
			{
				if(a[i][j]=='r')
				{
					cout<<"kou"<<endl;
				}
				else
				{
					cout<<"yukari"<<endl;
				}
				return 0;
			}
		}
	}
	cout<<"to be continued"<<endl;
	return 0;
}

7.小红的数组操作(A组、B组) 

二分思想,二分寻找 mid:数组尽可能小的最大值 ,注意可以是负数

#include<iostream>
#define int long long
using namespace std;
int a[100010];
int n,k,x;
bool check(int mid)
{
	int sum=0; //操作次数
	for(int i=1; i<=n; i++)
	{
		if(a[i]>mid) //计算将a[i]降到mid需要的操作次数
		{
			sum+=(a[i]-mid+x-1)/x; //总共操作次数
		}
	}
	return sum<=k; //非必等于k次,尽可能小的最大值(小于k次就能实现,剩余操作只要不去操作数组最大值就行)
}
signed main()
{
	cin>>n>>k>>x;
	for(int i=1; i<=n; i++) cin>>a[i];
	int l = -1e14, r = 1e9, mid, ans;
	while(l<=r)
	{
		mid=(l+r)/2;
		if(check(mid)) //mid:数组尽可能小的最大值
		{
			ans=mid;
			r=mid-1; //寻找更小的mid
		}
		else
		{
			l=mid+1;
		}
	}
	cout<<ans<<endl;
	return 0;
}

标签:传智杯,string,int,cin,long,初赛,using,第七届,define
From: https://blog.csdn.net/2301_77869606/article/details/144617569

相关文章

  • 内部赛第四届网络安全攻防大赛①-初赛-团队赛 Writeup
    谁有别的题wp留言或者私信大家集合一下。Web*点击就送*(打完就没容器了。。。没截图)共32位,每位0-f16个字符独立验证填充爆破,根据每位回显颜色差别,可得FLAGflag{4db490dfbac9fc8f9ccd42213944d90f}Pwnfmtfrompwnimportremote,fmtstr_payloadr=remote('39.106.......
  • 内部赛第四届网络安全攻防大赛①-初赛-个人赛 Writeup
    谁有别的题wp留言或者私信大家集合一下。CryptoTODO|primeezcode大厨自动解古典维吉尼亚在线爆破.ReversePaddleStrike用python3.7pythonpyinstxtractor.pyPaddle.exe解压出re1.pyc用pycdas.exere1.pyc得到一串base64ZmxhZ3tmYTY5Njc0My04ZDBmLTQwZjctOG......
  • 第四届“鹏城杯”联邦网络靶场协同攻防演练(初赛)WriteUp
    miscSimplesteganography解压出来一个png修复宽高出1半flag。hint.txt用ntfs流导出一张png图片。从里面拆出一个jpg。arnold置乱解码一次得到flag另一半。取证dump出桌面的base.zip。爆破解压得到base64码表u3=LEnoG9HX2fJPVyIUpjax+8CSqsBOYWmzekwA1Z5grM0F/6DTNhQb......
  • 2024年CSP-J普及组初赛真题试卷
    2024年CSP-J普及组初赛真题试卷可前往题库中心,在线模拟测评,高效,方便~2024年CSP-J普及组初赛真题试卷_c++_嗨信奥-玩嗨信息奥林匹克竞赛-少儿编程题库学习中心https://www.hixinao.com/tidan/cpp/show-160.html......
  • ciscn初赛 2024
    ezCsky先根据提示到github下载M-Core插件放到ida的proxy文件夹,然后选择MCORE形式打开流程首先进行一次长度检查,然后通过check函数,rc4_init初始化s盒,rc4_crypt进行rc4加密这里有个xor函数,我不知道咋跳到这里的,然后猜测是按自己向后异或lrwr7,byte_8AA0{off_8960}这......
  • 2024长城杯初赛WinFT_1 writeup
    WinFT_1step.1先看题目flag格式是攻击机的域名+ip+端口step.2netstat-ao发现可疑的域名和端口结合题目附件恶意流量包的内容怀疑是192.168.116.130再加上火绒剑的帮助,确定是flvupdate再看看任务管理器,确认一下,毕竟flag有提交次数限制是后门程序step.......
  • 初赛知识点
    初赛知识点目录初赛知识点一:考些什么二:芝士点复习(c++算法)三:计算机四:操作系统五:网络&数据库六:软件工程一:考些什么编程语言:常见编程语言(C++)的基本语法和特性。数据类型、变量、运算符、控制结构(如条件语句、循环语句)。函数和过程的定义与调用、参数传递、作用域。面向对......
  • THUPC 2024初赛 组队VP 2024.12.7
    组队的思路不会写太清楚,这个只供日后队内需要进行查看C.前缀和题面:小兰喜欢随机数,TA首先选定了一个实数\(0<p<1\),然后生成了\(n\)个随机数\(x_1,\ldots,x_n\),每个数是独立按照如下方式生成的:\(x_i\)有\(p\)的概率是1,有\((1-p)p\)的概率是2,有\((1-p)^2p\)......
  • 2024年第七届全国青少年人工智能创新挑战赛 编程创作与信息学专项赛 C++真题(第一场)
    田地移动【问题描述】童童的田地是一个n行n列的格子方阵,区域中有一些格子埋有种子,用字符*表示,其他格子没有种子,用字符?表示。某一天童童在田地地里播种,他可以根据指令在上下左右四个方向上移动,大写字母A、B、L、R分别表示向上、向下、向左、向右移动一格。现在输入田......
  • 洛谷 P8824 [传智杯 #3 初赛] 终端 C语言
    题目:https://www.luogu.com.cn/problem/P8824题目描述有一天您厌烦了电脑上又丑又没用的终端,打算自己实现一个Terminal。具体来说,它需要支持如下命令:touchfilename:如果名为 filename 的文件不存在,就创建一个这样的文件,如果已经存在同名文件的话则不进行任何操作。......