马蹄集 第九次oj赛

news2024/9/22 7:20:17

目录

 MT2188·单条件和

8421码

余3码

 永恒之2

新十六进制

人脑计算机

 二进制?不同!

三进制计算机1

三进制计算机2

 excel的烦恼


 MT2188·单条件和


号难度:黄金©
时间限制:1秒
巴占用内存:128M
★收藏△报错
“单条件”是数理逻辑中的5种常用连接词之一,记作“,”。它是二元运算。相当于“如
果…那么”、“因为…所以…”、“只要.就”等。也可称为“蕴涵”。“p→q”读作
“如果p,那么q”,其中p称为前件,q称为后件。
其真值表如下:
P>Q
1
1
0
1
0
1

//
// Created by abner on 2023/8/21.
//
#include <bits/stdc++.h>
using namespace std;
int n;
unsigned ans,a;
int main(){
    scanf("%d",&n);
    scanf("%u",&ans);
    for (int i=2;i<=n;i++){
        scanf("%u",&a);
    ans = ~ans | a;
}
printf("%u\n",ans);
return 0;
}

8421码


难度:白银
©时间限制:1秒
巴占用内存:128M
8421码是最常用的BCD码(Binary-Coded Decimal),是十进制代码中最常用的一
种。在这种编码方式中,每一位二值代码的“1都代表一个固定数值。将每位“1”所代表
的二进制数加起来就可以得到它所代表的十进制数字。因为代码中从左至右看每一位
1”分别代表数字8“4“21”,故得名8421码。其中每一位“1”代表的十进制数称为
这一位的权。因为每位的权都是固定不变的,所以8421码是恒权码。
一摘自百度百科
8421码就是将十进制的数以8421的形式展开成二进制,大家知道十进制是0~9十个数
组成,这十个数每个数都有自己的8421码:0=0000,1=0001,2=0010,3=0011,4
0100,5=0101,6=0110,7=0111,8=1000,9=1001。接下来的10就有两个上述的
码来表示10表示为00010000(1与0)也就是BCD码是遇见1001就产生进位,不象普通
的二进制码,到1111才产生进位10000.8421码的每4位代表十进制的每一位上的数, 

//
// Created by abner on 2023/8/21.
//
#include <bits/stdc++.h>
using namespace std;
char a[10][5]={"0000","0001","0010","0011","0100",
        "0101","0110","0111","1000","1001"};
int n;
char num[10];//unsigned int最大是10位
int main(){
    cin >>n;
    while (n--) {
        cin >> num;
        int len = strlen(num);
        for (int i = 0; i < len; i++)
            cout << a[num[i] - '0'];
        cout << endl;
    }
        return 0;
    }

余3码


难度:白银
时间限制:1秒
巴占用内存:128M
8421码是一种BCD码(Binary-Coded Decima?1),将十进制的数以8421的形式展开成
二进制,大家知道十进制是0~9十个数组成,这十个数每个数都有自己的8421码:日
=0000,1=0001,2=0010,3=0011,4=0100,5=0101,6=0110,7=0111,8=
1000,9=1001。接下来的10就由两个上述的码来表示,10表示为00010000(1与0)
也就是BcD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位
10000.8421码的每4位代表十进制的每一位上的数,举个例子:321的8421码就是
001100100001(分别对应十进制321)。
而余三码(余3码)是由8421BCD码加上0011形成的一种无权码,由于它的每个字符编
码比相应的8421码多3,故称为余三码。BCD码的一种。余3码的特点:当两个十进制数
的和是9时,相应的和的余3码正好是1111,于是可自动产生进位信号,而不需修正。0
和9,1和8,..5和4的余3码互为反码,这在求对于模9的补码很方便。
Decimal
8421BCD
余3码 

//
// Created by abner on 2023/8/21.
//
#include <bits/stdc++.h>
using namespace std;
char a[10][5]={"0011","0100","0101","0110","0111",
"1000","1001","1010","1011","1100"};
int n;
char num[10];//unsigned int最大是10位
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    cin >>n;
    while (n--){
        cin >>num;
        int len = strlen(num);
        for (int i=0;i<len;i++)
            cout <<a[num[i]-'0'];
        cout <<'\n';
    }
    return 0;
}

 永恒之2


难度:钻石
时间限制:1秒
巴占用内存:128M
小码哥被困扰住了,因为电脑它又双叒爱坏了!!!
现在还是想让你算一些东西:给出一个十六进制数k,求出在1到中2出现了多少
次(1到k都用十六进制表示),其中k在十六进制下不大于10位。输出的答案请对
99999989取余。
格式
输入格式:第一行一个十进制整数n(1≤n≤10),表示k的位数;
第二行一个十六进制数k。
输出格式:一个十进制整数,表示1到k中2出现的次数对99999989取余的答
案。

#include <bits/stdc++.h>
using namespace std;
#define int long long
int p[15] = {1}, a[15], n, ans;
char s[15];
const int mod = 99999989;
signed main() {
    cin >> n >> s;
    for (int i = 1; i <= n; i++)
        p[i] = p[i - 1] * 16;
    for (int i = 0; i < n; i++)
        if (s[i] >= '0' && s[i] <= '9')
            a[i] = s[i] - '0';
        else
            a[i] = s[i] - 'A' + 10;
    for (int i = 0; i < n; i++) {
        int pre = 0, suf = 0;
        for (int j = 0; j <= i - 1; j++)
            pre = pre * 16 + a[j];
        for (int j = i + 1; j < n; j++)
            suf = suf * 16 + a[j];
        if (a[i] > 2)
            ans = (ans + (pre + 1) * p[n - i - 1] % mod) % mod;
        else if (a[i] < 2)
            ans = (ans + pre * p[n - i - 1] % mod) % mod;
        else
            ans = (ans + suf + 1 + pre * p[n - i - 1] % mod) % mod;
    }
    cout << ans;
    return 0;
}

新十六进制


难度:钻石
0时间限制:1秒
巴占用内存:128M
小码哥基于之前的十六进制定义了一种新的进制,其仍然由十六个基数构成(即
0,1,2,..,9,A,B,C,D,E,F),并且大小关系保持不变(即0<1<2<
..<9<A<B<C<D<E<F),唯一不同的是数字只能按照大小关系升序排列
(即11,21这样的数是不合法的,1F的下一个数是23),但前导0会被忽略(即00012等
于12,也同样合法)。
现在小码哥想为这种进制制作转换器,能够把这种进制下的数转换成十进制数,但小码
哥不懂怎么下手,于是他来找你帮忙。
小码哥希望对于输入的数字能进行判断,如果这个数字不合法,转换器会报错,如果合
法,转换器会输出对应的十进制数。 

//
// Created by abner on 2023/8/21.
//
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5;
char d[]= "0123456789ABCDEF";
int cnt =1,flag = 1;
string temp,s,ss[N]{"0"};
void dfs(int num){
    if (temp.size())
    ss[cnt++]=temp;
    for(int i=num+1;i<=15;i++) {
        temp.push_back(d[i]);
        dfs(i);
        temp.pop_back();
    }
}
        bool cmp(string a,string b){
            if (a.size()==b.size())
                return a < b;
            return a.size() < b.size();
        }
        int main(){
            dfs(0);
            cin >>s;
            if(s[0]=='-')
                flag =-1,s.erase(s.begin());
            while (s[0]== '0' && s.size()>1)
                s.erase(s.begin());
            sort(ss,ss + cnt,cmp);
            for (int i=0;i < cnt;i++)
                if (ss[i]==s){
                    cout <<i*flag;
                    return 0;
                }
            cout <<"error";
            return 0;
        }


人脑计算机


难度:白银
0时间限制:1秒
巴占用内存:128M
小码哥的计算机昨天坏掉了,现在他想请你帮忙算一些东西。
他会给你t一1个十进制数,请你把他们统统转化成二进制数。
格式
输入格式:一个非负整数t,表示t-1组数据:
下面t-1行每行一个数n(十进制)。
输出格式:对应每个n给出答案。 

//
// Created by abner on 2023/8/21.
//
#include <bits/stdc++.h>
using namespace std;
int t,n;
stack<int>st;
int main(){
    cin >>t;
    t--;
    while(t--) {
        cin >> n;
        while (n) {
            st.push(n % 2);
            n = n / 2;
        }
        while (!st.empty()) {
            cout << st.top();
            st.pop();
        }
        cout << endl;
    }
    return 0;
}

 二进制?不同!


难度:黄金
时间限制:1秒
巴占用内存:128M
小码哥是一个对数很敏感的人,即使给他很多个很像的数串,他都能找出没有出现过的
数串。
或许是有些无聊,小码哥给你一个字符串数组ums,里面包含n个二进制字符串(长度
都为),现请你找出不在数组中的二进制字符串。若有多解,返回对应十进制最小的
一个。
格式
输入格式:一行二进制字符串数组,字符串之间以空格分割。
输出格式:一个不在数组中的二进制字符串。

//
// Created by abner on 2023/8/21.
//
#include <bits/stdc++.h>
using namespace std;
vector<string>nums;
string s;
int main(){
    while (cin >>s)
        nums.push_back(s);
    int len = nums[0].length();
    int m = nums.size();
    string ans ="";
    map<int,bool>mp;
    for(int i=0;i<m;i++) {//转十进制
        int sum = 0;
        int a = 1;
        for (int j = len - 1; j >= 0; j--){
            if (nums[i][j] == '1')
                sum += a;
        a *= 2;
    }
    mp[sum]= true;
}
        for(int i=0;i<(1<<len);i++){//转二进制字符串输出
                if (!mp[i]){
                    int b = i;
                    int k = len;
                    while (k--){
                        if (b & 1)
                        ans ='1'+ans;
                        else
                        ans ='0'+ans;
                        b >>=1;
                    }
                        break;
                    }
                }
            cout <<ans;
            return 0;
        }

三进制计算机1


难度:黄金
0时间限制:1秒
巴占用内存:128M
三进制计算机,是以三进法数字系统为基础而发展的计算机。在光子计算机研究领域也
有涉及。
三进制代码的一个特点是对称,即相反数的一致性,因此它就和二进制代码不同,不存
在无符号数的概念。这样,三进制计算机的架构也要简单、稳定、经济得多。其指令系
统也更便于阅读,而且非常高效。
在一般情况下,命题不一定为真或假,还可能为未知。在三进制逻辑学中,符号1代表
真;符号-1代表假;符号©代表未知。这种逻辑表达方式更符合计算机在人工智能方面
的发展趋势,它为计算机的模糊运算和自主学习提供了可能。
在本题中,请你将输入的对称三进制数转换为对应的十进制数。对称三进制数不是用
0/1/2表示,比较特殊,是用1/0/-1表示,故名对称。本题中-1用符号-表示,而1
和0直接表示即可。 

 

三进制计算机2


难度:钻石0时间限制:1秒
巴占用内存:128M
三进制计算机,是以三进法数字系统为基础而发展的计算机。在光子计算机研究领域也
有涉及。
三进制代码的一个特点是对称,即相反数的一致性,因此它就和二进制代码不同,不存
在无符号数的概念。这样,三进制计算机的架构也要简单、稳定、经济得多。其指令系
统也更便于阅读,而且非常高效。
在一般情况下,命题不一定为真或假,还可能为未知。在三进制逻辑学中,符号1代表
真;符号-1代表假;符号©代表未知。这种逻辑表达方式更符合计算机在人工智能方面
的发展趋势,它为计算机的模糊运算和自主学习提供了可能。
在本题中,请你将输入的十进制数转换为对应的对称三进制数。对称三进制数不是用
0/1/2表示,比较特殊,是用1/0/-1表示,故名对称,其中-1请用符号·表示,而1
和阳直接表示即可。

//
// Created by abner on 2023/8/21.
//
#include <bits/stdc++.h>
using namespace std;
const int N=50;
int num[N],n,x;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    cin >>n;
    while (n--) {
        cin >> x;
        memset(num, 0, sizeof(num));
        int flag = 1, cnt = 0;
        if (x < 0) {
            flag = -1;
            x = -x;
        }
        if (x == 0) {
            cout << x << "\n";
            continue;
        }
        while (x) {
            num[cnt++] = x % 3;
            x = x / 3;
        }
        for (int i = 0; i < cnt; i++) {
            if (num[i] == 2) {
                num[i] = -1;
                num[i + 1]++;
            } else if (num[i] == 3) {
                num[i] = 0;
                num[i + 1]++;
            }
        }
        if (num[cnt])
            cnt++;
        if (flag == -1)
            for (int i = cnt - 1; i >= 0; i--)
                num[i] = -num[i];
        for (int i = cnt - 1; i >= 0; i--) {
            if (num[i] == -1)
                cout << "-";
            else
                cout << num[i];
        }
        cout << "\n";
    }
                        return 0;}

 excel的烦恼


号难度:钻石
©时间限制:2秒
巴占用内存:128M
你用过Excel嘛?
在exce1中,第一列被标为A,第二列为B,以此类推,第26列为Z。接下来为由两个
字母构成的列号:第27列为AA,第28列为AB在标为ZZ的列之后则由三个字母构成列
号,如此类推。
行号为从1开始的整数。
单元格的坐标由列号和行号连接而成。比如,BC23表示位于第55列23行的单元格。
有时也会采用被称为XCY的坐标系统,其中X与Y为整数,坐标(X,Y)直接描述了对应单
元格的位置。比如,R23C55即为前面所述的单元格。
小码哥请你编写一个程序,将所给的单元格坐标转换为另一种坐标系统下面的形式。

/*
	MT2187 excel的烦恼 
*/
#include<bits/stdc++.h> 
using namespace std;

string str;
int T;
char apt[] = " ABCDEFGHIJKLMNOPQRSTUVWXYZ";

// 检测当前的坐标字符串属于那种格式:
// 0 EXCEL 格式 
// 1 RXCY  格式
bool getFormat(string str)
{
	bool flag = 0;
	int strlen = str.length();
	for(int i=0; i<strlen; i++) {
		// 数字出现标记 
		if(isdigit(str[i]))
			flag = true;
		// 检测是否为 RXCY 模式
		if(flag && str[i]=='C')
			return true;
	}
	return false;
} 

// 格式转换 
void transform(string str)
{
	// 格式识别
	bool mode =  getFormat(str);
	// 格式转换 
	int row = 0, col = 0, len = str.length();
	if(mode){ // mode 1:RXCY 转 ECXCEL 格式 
		// 定位 R 与 C 所在位置 
		int R = str.find("R"), C = str.find("C");
		// 取出行号和列号 
		for(int i=R+1; i<C; i++) 
			row = row*10+str[i]-'0';
		for(int i=C+1; i<len; i++)
			col = col*10+str[i]-'0';
		// 将十进制数转换为以 A-Z 表达的二十六进制数 
		int tmp;
		string ans;
		while(col > 0){
			tmp = col%26;
			if(tmp == 0){
				tmp = 26;
				col -= 26;
			}
			ans += apt[tmp];
			col /= 26;
		} 
		reverse(ans.begin(), ans.end());
		// 格式化输出 
		cout<<ans<<row<<endl;
	}else{	// mode 0:ECXCEL 转 RXCY 格式 
		// 将二十六进制数转换为十进制数 
		for(int i=0; i<len; i++)
			if(!isdigit(str[i]))
				col = col*26+str[i]-'A'+1;
			else
				row = row*10+str[i]-'0';
		// 格式化输出 
		cout<<"R"<<row<<"C"<<col<<endl;
	}
}

int main( )
{
	// 输入数据
	cin>>T;
	for(int i=1; i<=T; i++){
		cin>>str;
		// 将当前的坐标表达式转换为另一种格式 
		transform(str);
	}
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/909125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MemSeg:一种差异和共性来检测图像表面缺陷的半监督方法

目录 1、摘要 2、Method 2.1 模拟异常样本 2.2 Memory Module 2.3 空间注意模块 2.4 多尺度特征融合模块 2.5 损失函数设置 2.6 Decoder模块 1、摘要 本文认为人为创建类内差异和保持类内共性可以帮助模型实现更好的缺陷检测能力&#xff0c;从而更好地区分非正常图像。如…

蓝蓝设计UI设计公司-界面设计与开发案例

天津航天中为项目 中国南方电网十二个软件交互优化和界面设计 图标设计 | 交互设计 | 界面设计 天津航天中为数据系统科技有限公司是航天503所控股的专业化公司&#xff0c;坐落于天津滨海新区航天技术产业园&#xff0c;是航天五院家入住天津未来科技城的军民融合型企业&…

el-tree组件图标的自定义

饿了么树形组件的图标自定义 默认样式: 可以看到el-tree组件左侧自带展开与收起图标,咱们可以把它隐藏:: .groupList {::v-deep .el-tree-node { .el-icon-caret-right {display: none;} } } 我的全部代码 <div class"groupList"><el…

韩顺平java集合

遍历集合方式: public static void main(String[] args) {List<Object> arrayList new ArrayList<>();arrayList.add(1);arrayList.add(3);arrayList.add(111);Iterator<Object> iterator arrayList.iterator();while (iterator.hasNext()){System.out.pri…

SpringBoot整合MongoDB(从安装到使用系统化展示)

SpringBoot整合MongoDB&#xff08;从安装到使用系统化展示&#xff09; MongoDB介绍 基础介绍 MongoDB是一种开源、面向文档的非关系型数据库管理系统&#xff08;NoSQL DBMS&#xff09;&#xff0c;它以其灵活性、可扩展性和强大的查询能力而闻名。MongoDB的设计理念是为了…

Linux journalctl命令详解(journalctl指令)

文章目录 Linux Journalctl命令详解1. Journalctl简介2. Journalctl基础使用3. 过滤日志条目4. 时间戳和日志轮转5. 高级应用6. journalctl --help指令文档英文中文 注意事项journal日志不会将程序输出的空行显示&#xff0c;日志会被压缩得满满当当。journal日志不会自动持久化…

Claude 2 国内镜像站

Claudeai是什么&#xff1f; Claude 2被称为ChatGPT最强劲的竞争对手&#xff0c;支持100K上下文对话&#xff0c;并且可以同时和5个文档进行对话&#xff0c;不过国内目前无法正常实用的&#xff0c;而claudeai是一个Claude 2 国内镜像站&#xff0c;并且免翻可用&#xff0…

当图像宽高为奇数时,如何计算 I420 格式的uv分量大小

背景 I420 中 yuv 数据存放在3个 planes 中。 网上一般说 I420 数据大小为 widthheight1.5 但是当 width 和 height 是奇数时&#xff0c;这个计算公式会有问题。 I420 中 u 和 v 的宽高分别为 y 的一半。 但是当不能整除时&#xff0c;是如何取整呢&#xff1f;向上还是向下&…

【C++】iota函数 + sort函数实现基于一个数组的多数组对应下标绑定排序

目录 一、iota函数 1. 函数解析 ​① 迭代器类型(补充) ② 头文件 ③ 参数 2. 函数用途与实例 二、sort函数 1、 函数解读 2、实现倒序排列 2.1 greater 与 less 模板参数 2.2 lambda表达式 三、下标绑定排序&#xff08;zip&#xff09; --- 833.字符串中的查找与替换 一、…

innodb事务实现

事务的特性 ACID 事务的类别 事务实现 redo redoLog buffer 的格式 undo 更新主键 purge group commit 因为上层的binlog和底层的redolog要保持一致&#xff0c;所以 事务控制语句 事务隔离级别 分布式事务 事务习惯

安装Ubuntu服务器、配置网络、并安装ssh进行连接

安装Ubuntu服务器、配置网络、并安装ssh进行连接 1、配置启动U盘2、配置网络3、安装ssh4、修改ssh配置文件5、重启电脑6、在远程使用ssh连接7、其他报错情况 1、配置启动U盘 详见: U盘安装Ubuntu系统详细教程 2、配置网络 详见&#xff1a;https://blog.csdn.net/davidhzq/a…

运放和三极管构成的恒流源电路

这是一个由运放和三极管构成的恒流源电路&#xff0c;RL为负载电阻&#xff0c;R1为采样电阻。 流过三极管集电极的电流 下面分析下这个电路的工作原理。首先我们可以看到这个运放引入了负反馈&#xff0c;所以它工作在线性区的&#xff0c;就有VINVPVN。 所以流过采样电阻R1的…

ATF BL1/BL2 ufs_read_blocks/ufs_write_blocks使用分析

ATF BL1/BL2 ufs_read_blocks/ufs_write_blocks使用分析 1 ATF的下载链接2 ATF BL1/BL2 ufs_read_blocks/ufs_write_blocks处理流程2.1 ATF BL1/BL2 ufs_read_blocks2.2 ATF BL1/BL2 ufs_write_blocks 3 UFS System Model4 ufs_read_blocks/ufs_write_blocks详细分析4.1 ufs_re…

layui框架学习(37:学习laytpl基本语法)

layui中的模板引擎模块laytpl属于轻量的 JavaScript 模板引擎&#xff0c;支持在页面中将指定的数据按指定的模板进行展示或处理&#xff0c;此处的模板是指一段包含html和脚本的文本&#xff08;感觉类似asp.net core中的razor标记语言&#xff0c;在网页中嵌入基于服务器的代…

深入理解CyclicBarrier

CyclicBarrier翻译过来是回环栅栏&#xff0c;它可以实现让一组线程等待至某个状态之后再全部同步执行&#xff0c;这个状态叫屏障点。当所有等待线程都被释放后&#xff0c;CyclicBarrier可以重置再次使用。 CyclicBarrier的功能是由ReentrantLock和Condition共同实现的&…

java: 无法访问org.springframework.boot.SpringApplication 错误的类文件

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; java: 无法访问org.springframework.boot.SpringApplication 错误的类文件: /D:/Software/env-java/apache-maven-3.6.1/repository/org/springframework/boot/spring-boot/3.1.2/spring-boot-3.1.2.ja…

Docker基础操作入门

1 初识 Docker 1.1 简介 我们写的代码会接触到好几个环境&#xff1a;开发环境、测试环境以及生产环境 Docker概念 Docker 是一个开源的应用容器引擎&#xff0c;诞生于 2013 年初&#xff0c;基于 Go 语言实现&#xff0c; dotCloud 公司出品&#xff08;后改名为Docker In…

钝感力:项目经理的隐形盾牌

钝感力的定义 钝感力的起源和意义 钝感力&#xff0c;或者说对外部刺激的不敏感性&#xff0c;起源于我们的生存本能。在古代&#xff0c;人们面对各种危险和挑战&#xff0c;需要有一定的抗压能力&#xff0c;才能在恶劣环境中生存下来。这种能力使得我们的祖先能够在面对猛兽…

R package org.Hs.eg.db to convert gene id

文章目录 install使用org.Hs.egENSEMBL将Ensembl id convert to gene idorg.Hs.egGENENAME 将Ensembl id convert to gene nameorg.Hs.egSYMBOL 将 gene symbol convert to gene id我现在有一些ensembl id 如何转为 gene name注意你会遇到一些record不全的情况&#xff0c;gtf文…

Certify The Web (IIS)

一、简介 Certify The Web 适用于 Windows的SSL 证书管理器用户界面&#xff0c;与所有 ACME v2 CA 兼容&#xff0c;为您的 IIS/Windows 服务器轻松地安装和自动更新来自 Letencrypt.org 和其他 ACME 证书授权机构的免费 SSL/TLS 证书&#xff0c;设置 https 从未如此简单。 …