Codeforces#313

A题题意:给n个基础币值,问你是否能组成所有种类的币值,能则输出-1,不能则输出不能组成的最小币值。思路:理解了题意就明白了,1是关键解。#include <iostream>#include <stdio.h>using namespace std;int main(){int n,i;while(cin>>n){bool flag = false;while(n–){cin>>i;if(i==1)flag=true;}cout<<(flag?-1:1)<<endl;}return 0;}C题题意:给六边形的六条边,问你能组成多少正三角形。思路:补全六边形,另外正三角形能分割的最大数为边的平方。#include <iostream>#include <stdio.h>using namespace std;int main(){int a,b,c,d,e,f;while(cin>>a>>b>>c>>d>>e>>f)printf("%d\n",(a+b+c)*(a+b+c)-a*a-c*c-e*e);return 0;}D题题意:给两组字符串,按照给定的判断字符串是否相同的要求来判断。思路:分治法,对于给定的字符串不断等分,但是如果是奇数个字符,那么直接判断是否相等,至于m和n的比较,也就是不一定要对应下标相等,,可以更换位置,所以就设定全部按照从小到大的顺序来排列,最后在比较即可。

#include <iostream>using namespace std;string solve(string k){if(k.length()%2)return k;string m = solve(k.substr(0,k.length()/2));string n = solve(k.substr(k.length()/2,k.length()));if(m < n) return n+m;return m+n;}int main(){string a,b;cin>>a>>b;cout<<(solve(a) == solve(b)?"YES":"NO")<<endl;return 0;}

版权声明:转载请注明出处

想做你的有缘人,可是我知道结果是惨淡的,但还是心存希望!

Codeforces#313

相关文章:

你感兴趣的文章:

标签云: