洛谷P1013 [NOIP1998 提高组] 进制位

2023-12-13 18:52

本文主要是介绍洛谷P1013 [NOIP1998 提高组] 进制位,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

洛谷P1013 [NOIP1998 提高组] 进制位

第一次写注释(笑)

#include<bits/stdc++.h>
using namespace std;
int n,nn;
string a[15][15];
int b[15][15],c[15][15];
int main()
{cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin>>a[i][j];                                    //输入 nn=n-1;						//进制的计算/*本题的计算中经推算 第二行输入中的字母数量即为进制数因为字母表示的是正整数如果n=5假设进制数为6那样就会出现这样的表格:+ 2 3 4 52 4 5 10 113 5 10 11 124 10 11 12 135 11 12 13 14其中0,1两个数字无法用字母表示如果出现这样的答案 会判定  “ERROR!”*/for(int i=2;i<=n;i++){for(int j=2;j<=n;j++)                  if(a[i][j].length()==2) b[i][1]++;b[1][i]=c[1][i]=c[i][1]=b[i][1]; } /*for(int i=2;i<=n;i++)for(int j=2;j<=n;j++)if(a[i][j].length()==2) {b[1][j]++;c[1][j]++;}*//*建立在第一段注释的基础上可以同样推断出 第一列 和 第一行 中的字母是由每一列或每一行中的两位数数量决定的 可以通过九九加法表推出	*//*for(int i=2;i<=n;i++){if(b[i][1]!=b[1][i]){cout<<"ERROR!";return 0;}}*/for(int i=2;i<=n;i++){for(int j=2;j<=n;j++){//cout<<a[i][j].length()<<" ";for(int z=0;z<=a[i][j].length()-1;z++){	b[i][j]*=10;//cout<<a[i][j].substr(z,1)<<endl;for(int ii=2;ii<=n;ii++) if(a[ii][1]==a[i][j].substr(z,1)) b[i][j]+=b[ii][1];}}//cout<<endl;}//cout<<endl<<endl<<endl;for(int i=2;i<=n;i++)for(int j=2;j<=n;j++){c[i][j]=c[i][1]+c[j][1];if(c[i][j]>nn-1){c[i][j]+=10;c[i][j]-=nn;}}/*通过九九加法表计算出来的数值可以将整个加法表自己重新推算一遍再通过将加法表与输入进行对比判断ERROR */ /*for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)cout<<b[i][j]<<" ";cout<<endl;}cout<<endl<<endl;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)cout<<c[i][j]<<" ";cout<<endl;}cout<<endl<<endl;*/for(int i=2;i<=n;i++)for(int j=2;j<=n;j++)if(b[i][j]!=c[i][j]){cout<<"ERROR!";return 0;						//判断ERROR! }for(int i=2;i<=n-1;i++)cout<<a[i][1]<<"="<<b[i][1]<<" ";cout<<a[n][1]<<"="<<b[n][1]<<endl;cout<<nn;return 0;
}

这篇关于洛谷P1013 [NOIP1998 提高组] 进制位的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/489565

相关文章

如何提高Redis服务器的最大打开文件数限制

《如何提高Redis服务器的最大打开文件数限制》文章讨论了如何提高Redis服务器的最大打开文件数限制,以支持高并发服务,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录如何提高Redis服务器的最大打开文件数限制问题诊断解决步骤1. 修改系统级别的限制2. 为Redis进程特别设置限制

usaco 1.2 Palindromic Squares(进制转化)

考察进制转化 注意一些细节就可以了 直接上代码: /*ID: who jayLANG: C++TASK: palsquare*/#include<stdio.h>int x[20],xlen,y[20],ylen,B;void change(int n){int m;m=n;xlen=0;while(m){x[++xlen]=m%B;m/=B;}m=n*n;ylen=0;whi

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

键盘快捷键:提高工作效率与电脑操作的利器

键盘快捷键:提高工作效率与电脑操作的利器 在数字化时代,键盘快捷键成为了提高工作效率和优化电脑操作的重要工具。无论是日常办公、图像编辑、编程开发,还是游戏娱乐,掌握键盘快捷键都能带来极大的便利。本文将详细介绍键盘快捷键的概念、重要性、以及在不同应用场景中的具体应用。 什么是键盘快捷键? 键盘快捷键,也称为热键或快捷键,是指通过按下键盘上的一组键来完成特定命令或操作的方式。这些快捷键通常涉及同

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

如何提高 GitHub 的下载速度

如何提高 GitHub 的下载速度 文章目录 如何提高 GitHub 的下载速度1. 注册账号2. 准备好链接3. 创建仓库4. 在码云上下载代码5. 仓库更新了怎么办 一般来说,国内的朋友从 GitHub 上面下载代码,速度最大是 20KB/s,这种龟速,谁能忍受呢? 本文介绍一种方法——利用“码云”,可以大大提高下载速度,亲测有效。 1. 注册账号 去“码云”注册一

Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(4)

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(3)-CSDN博客  这节就是真正的存储数据了   理清一下思路: 1.存储路径并检查 //2进制文件类存储private static string Data_Binary_Pa

如何提高开发的效率,让老板不知所措的给你发工资

设计模式 UML JSP 编程 数据结构 1.你可能会常常发现,写了一段代码后,编译程序时是一大堆的出错 (原因:语法不熟)  ──别担心,这是每个程序员必须经历的事,这时候你就需要更大的耐心及细心,对每一行代码进行仔细人阅读并改正,这个很重要,这可以培养你的理解代码能力,所以要常读程序,不要等到程序运行以后才知道你的程序的结果。  ──如何避免:在写代码以前,要认真的学习计算机语

Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(3)

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(2) (*****生成数据结构类的方式特别有趣****)-CSDN博客 做完了数据结构类,该做一个存储类了,也就是生成一个字典类(只是声明)  实现和上一节的数据结构类的方式大同小异,所

高精度计算(代码加解析,洛谷p1601,p1303)除法待更新

目录 高精度加法 高精度减法 高精度乘法 高精度加法 我们知道在c++语言中任何数据类型都有一定的表示范围。当两个被加数很大时,正常加法不能得到精确解。在小学,我们做加法都采用竖式方法。那么我们也只需要按照加法进位的方式就能得到最终解。 8 5 6+ 2 5 5-------1 1 1 1 加法进位: c[i] = a[i] + b[i];if(c[i] >=