题解 | #石头剪刀布#

石头剪刀布

https://ac.nowcoder.com/acm/contest/27444/A

T1002-翊(范怡鑫) A-有序序列合并 解析: 创建一个数组,将两个序列分别存入数组,先存第一个序列,在第一个序列后存入第二个序列。再用sort函数将新数组升序排序。 代码:

#include<iostream>
#include<algorithm>
using namespace std;
const int N=1000;
int a[2*N];
int n,m,i;
int main()
{
	cin>>n>>m;
	for(i=0;i<n;i++)
	cin>>a[i];
	for(i=n;i<n+m;i++)
	cin>>a[i];
	sort(a,a+n+m);
	for(i=0;i<n+m;i++)
	cout<<a[i]<<' ';
	cout<<endl;
	return 0;
}

B-Dragon 解析: 这道题的实质是将四个数从大到小排序,用sort函数排序之后再用逐位乘法得到一个四位数。 代码:

#include<iostream>
#include<algorithm>
using namespace std;
int a[4];
int i,s;
int cmp(int x,int y)
{
	return x>y;
}
int main()
{
	for(i=0;i<4;i++)
	cin>>a[i];
	sort(a,a+4,cmp);
	for(i=0;i<4;i++)
	{
		s*=10;
		s+=a[i];
	}
	cout<<s<<endl;
}

C-花样方阵 解析: 该题首先要求每名同学需要花费的时间,即所走步数,为横向步数与纵向步数之和,步数为相应坐标之差。将所有同学花费时间存入数组,再用sort函数将数组降序排序,排序后数组第一个元素即为所需时间。 代码:

#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
int T,n,i,j,x,y,a[4];
int dev(int x,int y)
{
	if(x>y) return x-y;
	else return y-x;
}
int cmp(int x,int y)
{
	return x>y;
}
int main()
{
	cin>>T;
	while(T>0)
	{
	cin>>n;
	int step[n];
	for(i=0;i<n;i++)
	{
		for(j=0;j<4;j++)
		cin>>a[j];
		x=dev(a[0],a[2]);
		y=dev(a[1],a[3]);
		step[i]=x+y;
	}
	sort(step,step+n,cmp);
	cout<<step[0]<<endl;
	T--;
    }
	return 0;
}

D-不重复数字 解析: 从数组第一个元素开始和之前元素进行比较,若之前没有重复元素,则将该元素对应数值存入数组开头,r为新存入数组长度,以此类推,每存入一个数值,r自加一次,最后输出数组前r个元素。 代码:

#include<iostream>
using namespace std;
int T,n,i,j,r=0;
int main()
{
	cin>>T;
	while(T>0)
	{
		T--;
		cin>>n;
		int a[n];
		for(i=0;i<n;i++)
		{
			cin>>a[i];
		 } 
		for(i=0;i<n;i++)
		{
			for(j=0;j<r;j++)
			if(a[j]==a[i]) break;
			if(j==r)
			a[r++]=a[i];
		}
		for(i=0;i<r;i++)
		cout<<a[i]<<' ';
		cout<<endl;
		r=0;
	}
	return 0;
}

E-小H和迷宫 解析: 将三个整数存入数组,用sort函数将该数组降序排序,依次用怪兽剩余血量与相应百分数相乘,得到最终血量,初始血量减去最终血量即为最多扣减血量。 代码:

#include<iostream>
#include<algorithm>
using namespace std;
int N,blood,i,kill,a[3];
int cmp(int x,int y)
{
	return x>y;
}
int main()
{
	cin>>N;
	blood=N;
	for(i=0;i<3;i++)
	cin>>a[i];
	sort(a,a+3,cmp);
	for(i=0;i<3;i++)
    blood=blood*(100-a[i])/100; 
	kill=N-blood;
	cout<<kill;
	return 0;
}

F-主持人的烦恼 解析: 将n位同学的颜值存入数组,再将该数组用sort函数升序排序,如果相邻同学的研制差小于m,则组数加一,向后顺延两位同学,如果颜值差大于等于m,则组数不变,向后顺延一位同学。 代码:

#include<iostream>
#include<algorithm>
using namespace std;
int n,i,num;
long long int m;
int main()
{
	while(cin>>n)
	{
		num=0;
		cin>>m;
	    long long int a[n];
	    for(i=0;i<n;i++)
	    cin>>a[i];
	    sort(a,a+n);
	    for(i=0;i<n-1;i++)
	    {
		    if(a[i+1]-a[i]<m)
		    {
		    	num++;
		    	i++;
			}
	    }
	    cout<<num<<endl;
	}
	return 0;
}

G-栗酱的文明2 解析: 将n个国家拥有的土地数量存入数组,从下标为1的元素开始存,则下标代表第几个国家。用sort函数将该下标从1开始的数组降序排序,如果第i个国家拥有的土地数不大于i-1,则无法建立外交关系,以此类推,最终的i值即为能建立最多数量外交关系的国家。若i为1,则无法建立外交关系。 代码:

#include<algorithm>
using namespace std;
int T,ans,n,i;
int cmp(int x,int y)
{
	return x>y;
}
int main()
{
	cin>>T;
	while(T>0)
	{
		ans=0;
		T--;
		cin>>n;
		int a[n+1];
		for(i=1;i<=n;i++)
		cin>>a[i];
		sort(a+1,a+1+n,cmp);
		for(i=1;i<=n;i++)
		{
			if(a[i]<=i-1) break;
			ans=i;
		}
		if(i==1) cout<<0<<endl;
		else cout<<ans<<endl;
	}
	return 0;
}

H-小龙的秘密 解析: 将两个字符串用sort函数排序,再将排序好的字符串比较,若相同,则没有异常,若不同,则有异常。 代码:

#include<algorithm>
#include<cstring>
using namespace std;
string str1,str2;
int main()
{
	cin>>str1>>str2;
	sort(str1.begin(),str1.end());
	sort(str2.begin(),str2.end());
	if(str1==str2) cout<<"^_^"<<endl;
	else cout<<"-_-#"<<endl;
	return 0;
}

I-Laptop 解析: 将笔记本的内存和速度相对应地存入两个数组,在两个数组内依次比较内存和速度,如果该笔记本的内存和速度同时小于某一笔记本,则被“完虐”的笔记本数自加一次。 代码:

#include<algorithm>
using namespace std;
int n,i,j,ans;
int main()
{
	cin>>n;
	int m[n],s[n];
	for(i=0;i<n;i++)
	cin>>m[i]>>s[i];
	for(i=0;i<n;i++)
	    for(j=0;j<n;j++)
	    {
	    	if(m[i]<m[j]&&s[i]<s[j])
	    	{
	    		ans++;
	    		break;
			}
		}
	cout<<ans<<endl;
	return 0;
}

全部评论

相关推荐

06-27 12:54
已编辑
门头沟学院 Java
累了,讲讲我的大学经历吧,目前在家待业。我是一个二本院校软件工程专业。最开始选专业是觉得计算机感兴趣,所以选择了他。本人学习计算机是从大二暑假结束开始的,也就是大三开始。当时每天学习,我个人认为Java以及是我生活的一部分了,就这样持续学习了一年半,来到了大四上学期末,大概是在12月中旬,我终于找的到了一家上海中厂的实习,但我发现实习生的工作很枯燥,公司分配的活也不多,大多时间也是自己在自学。就这样我秋招末才找到实习。时间来到了3月中旬,公司说我可以转正,但是转正工资只有7000,不过很稳定,不加班,双休,因为要回学校参加答辩了,同时当时也是心高气傲,认为可以找到更好的,所以放弃了转正机会,回学校准备论文。准备论文期间就也没有投递简历。然后时间来到了5月中旬,这时春招基本也结束了,然后我开始投递简历,期间只是约到了几家下场面试。工资也只有6-7k,到现在我不知道该怎么办了。已经没有当初学习的心劲了,好累呀,但是又不知道该干什么去。在家就是打游戏,boss简历投一投。每天日重一次。26秋招都说是针对26届的人,25怎么办。我好绝望。要不要参加考公、考研、央国企这些的。有没有大佬可以帮帮我。为什么感觉别人找工作都是顺其自然的事情,我感觉自己每一步都在艰难追赶。八股文背了又忘背了又忘,我每次都花很长时间去理解他,可是现在感觉八股、项目都忘完了。真的已经没有力气再去学习了。图片是我的简历,有没有大哥可以指正一下,或者说我应该走哪条路,有点不想在找工作了。
码客明:太累了就休息一下兄弟,人生不会完蛋的
如果实习可以转正,你会不...
点赞 评论 收藏
分享
吴offer选手:下午mt一来就告警说项目来不及,估计明天拿了权限就要参与开发了 已老实
实习生的蛐蛐区
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务