问题标题: 发布自己洛谷的垃圾比赛

0
0
已解决
李牧之
李牧之
新手光能
新手光能

点击参加
本人(蒟蒻)在洛谷中建了一个比赛,题目完全原创,请各位大佬前来参加。
第一名将获得80酷町豆,如果加团团队还有永久管理员(除非你乱搞,要不然不会撤)。
第一名我将在洛谷私信TA

李牧之在2018-07-18 21:36:23追加了内容

请参加的大佬来着报个到

李牧之在2018-07-19 14:15:59追加了内容

比赛已经结束,题解:

第一题

火星的旅程

这一题是最经典的0-1背包问题,核心代码如下:

for(int i=1;i<=k;i++)
	for(int x=n;x>=h[i];x--) if (f[x-h[i]]+m[i]>f[x]) f[x]=f[x-h[i]]+m[i]; 
cout<<f[n];

第二题

火星的任务

这一题是一道排序题,较为麻烦,主要就是如何判断他的名字属于哪一种类型。

判断函数如下:

int check(string s){
	if (s[0]>='0'&&s[0]<='9'){
		for(int i=1;i<=s.size()-1;i++) if (!(s[i]>='0'&&s[i]<='9')){
			return 4;
		}
		return 2;
	}
	if ((s[0]>='a'&&s[0]<='z')||(s[0]>='A'&&s[0]<='Z')){
		for(int i=1;i<=s.size()-1;i++) if (!((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))){
			return 4;
		}
		return 3;
	}
	if (!(s[0]>='0'&&s[0]<='9')&&!(s[0]>='a'&&s[0]<='z')&&!(s[0]>='A'&&s[0]<='Z')){
		for(int i=1;i<=s.size()-1;i++) if ((s[i]>='0'&&s[i]<='9')||(s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')){
			return 4;
		}
		return 1;
	}
}

判断思路:

先判断字符串的第一位是那种类型,咱往后判断,如果后面的字符与第一个字符类型不同,就返回他是混搭型名字,如果遍历完了,返回相对应的类型。

使用字符串数组储存,主函数排序代码如下:

for(int i=1;i<=n-1;i++){
		for(int j=i+1;j<=n;j++){
			if (check(name[i])>check(name[j])){
				string s1;
				s1=name[i];
				name[i]=name[j];
				name[j]=s1;
			}
			else if (check(name[i])==check(name[j])){
				if (name[i]>name[j]){
					string s1;
					s1=name[i];
					name[i]=name[j];
					name[j]=s1;
				}
			}
		}
	}

 


0
已采纳
李祈乐
李祈乐
新手光能
新手光能

我是李祈乐,希望以后有更多的比赛供我们参加

0
0
0
0
0
0
0
郑怡翔
郑怡翔
初级天翼
初级天翼

已加

郑怡翔在2018-07-19 13:29:52追加了内容

参赛码?

郑怡翔在2018-07-19 13:32:38追加了内容

参赛码看到了,我太傻了,刚刚没看到

0
0
0
我要回答