ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

做题打卡第三天(补发)

2021-01-07 11:03:37  阅读:221  来源: 互联网

标签:word fu int 字母 numx 第三天 KL 打卡 补发


每日水题#3
昨天忘记水博客了今天重新发一个
著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字。 例如:

  • L K V E
    L L K V E
    K K V E KL
    V V E KL KK
    E E KL KK KV
    其含义为:

L+L=LL+L=L,L+K=KL+K=K,L+V=VL+V=V,L+E=EL+E=E

K+L=KK+L=K,K+K=VK+K=V,K+V=EK+V=E,K+E=KLK+E=KL

…… E+E=KVE+E=KV

根据这些规则可推导出:L=0L=0,K=1K=1,V=2V=2,E=3E=3

同时可以确定该表表示的是4进制加法

//感谢lxylxy123456同学为本题新加一组数据

输入格式
nn (n≤9)(n≤9)表示行数。

以下nn行,每行包括nn个字符串,每个字串间用空格隔开。(字串仅有一个为‘+’号,其它都由大写字母组成)

输出格式
① 各个字母表示什么数,格式如:L=0L=0,K=1K=1,……按给出的字母顺序。

② 加法运算是几进制的。

③ 若不可能组成加法表,则应输出“ERROR!”
原题链接:https://www.luogu.com.cn/problem/P1013
这道题主要用了进制转换
下面是代码:

#include<bits/stdc++.h>
#define fu(i,q,w) for(register int i=q;i<=w;i++)
#define fd(i,q,w) for(register int i=q;i>=w;i--)
using namespace std;
typedef long long ll;
inline int read(){
    int ret=0,f=1;char c;
    while((c=getchar())<'0'||c>'9')if(c=='-')f=-1;
    while(c>='0'&&c<='9')ret=ret*10+(c-'0'),c=getchar();
    return ret*f;
}
char word[10];//记录字母 
char check[10];//检查重复 
string numx,numy;//储存输入数据、检查重复 
map<char,int> two;//一行中两位数个数 
map<char,int> tone;//存字母在两位数个位出现几次 
int n;
void in(){
    n=read();
    cin>>numx;//"+"特判输入 
    fu(i,1,n-1){cin>>numx,word[i]=numx[0];}// 第一行存表头的每个字母 
    fu(i,1,n-1)//从第二行开始 
    fu(j,1,n){cin>>numx;
            
        if(j!=1&&j!=2)//表头不算
        if(numx==numy){printf("ERROR!");exit(0);}//发现重复输入一定不对 
        numy=numx; //前后比,不要全行比
        if(numx.size()==2){//统计两位数个数 
            two[word[i]]++;tone[numx[1]]++;
        }
    }
}
void solve(){
    fu(i,1,n-1)
    if(two[word[i]]!=n-2-tone[word[i]]){printf("ERROR!");exit(0);}
    //比较两种算法的结果是否相同
 	fu(i,1,n-1)
 	cout<<word[i]<<'='<<two[word[i]]<<' ';
 	printf("\n");
 	printf("%d",n-1);
 	
 	
    }
int main(){
    in();
    solve();
    return 0; 
    
}

标签:word,fu,int,字母,numx,第三天,KL,打卡,补发
来源: https://blog.csdn.net/Ignortools/article/details/112304915

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有