2 条题解
-
0
大模拟
#include<bits/stdc++.h> using namespace std; string a,b; int tacit(int fir) { //合成字符串 string A; if(fir==1)A=a+b; else A=b+a; //转化为数值 int al=A.length(); int x[al]; for(int i=0;i<al;i++) x[i]=A[i]-'a'; //大模拟 bool now=0;//0在x,1在y while(al>1) { for(int i=0;i<al-1;i++) x[i]=(x[i]+x[i+1])%10; al--; } return x[0]; } int main() { cin>>a>>b; cout<<max(tacit(1),tacit(0))<<"\n"; return 0; }
-
0
代码写的有亿点乱,见谅
默契程度:
输入两个名字然后拼接到一起,需要考虑拼接的顺序。然后对于每一个字母对应的有一个数值(实际上就是该字母的ASCII码-'a'),类似杨辉三角的相加并且对10取模,最终输出最大的一个默契程度值。
上代码
#include<bits/stdc++.h> using namespace std; string a,c,d; int x[2010],maxx; void mq(int leng) //leng记录当前实际上剩下了几个元素需要处理 { if(leng==1) return; //如果当前的‘倒杨辉三角 ’已经加和剩下了一个元素就结束 for(int i=1;i<=leng;i++) x[i]=(x[i]+x[i+1])%10; //否则对于每一位新的数值都等于上一个状态的i、i+1两个值想加 mq(leng-1); //调用下一层 return; } void bj() { for(int i=0;i<a.size();i++) x[i+1]=(a[i]-'a')%10; //转换字符为数值,注意取模 mq(a.size()); //计算默契值 } int main() { cin>>c>>d; //输入 a=c+d; //c、d这样拼接 bj(); //转换成数字、计算默契值 maxx=max(maxx,x[1]); //记录最大的默契值 a=d+c; //d、c这样拼接 bj(); maxx=max(maxx,x[1]); //同上 cout<<maxx; return 0; }
- 1
信息
- ID
- 1126
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 31
- 已通过
- 20
- 上传者