2020-11-23

https://blog.csdn.net/qq_45530271/article/details/109957130#E_123

E.
字符串拼接

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<vector>
#include<iomanip>
#include<functional>
//#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
//const int N=
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n;
	string ans,s[105];
	cin>>n;
	for(int i=0; i<n; i++) {
		cin>>s[i];
	}
	ans=s[0];
	int i,j,k;
	for(i=1; i<n; i++) {
		int l1=ans.length(),l2=s[i].length(),k=0;
		for(j=l2; j>=0; j--) {
			if(l1-j<0) continue;
			if(s[i].substr(0,j)==ans.substr(l1-j,l1)) {
				k=j;
				break;
			}
		}
		for(k; k<l2; k++) {
			ans+=s[i][k];
		}
		cout<<ans<<endl;
	}
	cout<<ans<<endl;
	return 0;
}

D. 魔法少女:承
题意:给定每颗高、低纯度结晶的回复理性值和纯粹度,找一种使用高、低纯度结晶的个数,使得理性值回满>=100,平均纯粹度≥ 60 % \geq60%≥60%,尽可能节约高纯度结晶,其次节约低纯度结晶。

//魔法少女:承 Standard Code [C++]
#include<bits/stdc++.h>
using namespace std;
int T,a1,b1,a2,b2;
int main(){
	cin>>T;
	while(T--){
		cin>>a1>>b1>>a2>>b2;
		int ans1=INT_MAX,ans2=INT_MAX;
		for(int i=0;i<=100;i++)
		for(int j=0;j<=100;j++)
			if(i*a1+j*a2>=100&&(i*b1+j*b2)/(i+j)>=60){
				if(i<ans1||(i==ans1&&j<ans2)){
					ans1=i;
					ans2=j;
				}
			}
		printf("%d %d\n",ans1,ans2);
	}
}

!!!
未来看的重点
I打怪兽
五个导弹3个怪兽,怎么分配。
运用dfs。

//ħ·¨ÉÙÅ®£º×ª Standard Code [C++]
#include<bits/stdc++.h>
using namespace std;
int T,hp[4],a[6],ans[6],flag;
void dfs(int k,int damage) {
	if(flag)  return;
	if(k>3) {
		for(int i=1; i<=5; i++)printf("%d%c",ans[i]," \n"[i==5]);
		flag=1;
		return;
	}
	if(damage>=hp[k]) {
		dfs(k+1,0);
		return;
	}
	for(int i=1; i<=5; i++)
		if(!ans[i]) {
			ans[i]=k;
			dfs(k,damage+a[i]);
			ans[i]=0;
		}

}
int main() {
	cin>>T;
	while(T--) {
		//	memset(ans,0,sizeof(ans));
		flag=0;
		for(int i=1; i<=3; i++)cin>>hp[i];
		for(int i=1; i<=5; i++)cin>>a[i];
		dfs(1,0);
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值