当前位置: 首页 > news >正文

AcWing第 93 场周赛

4867. 整除数

给定两个整数 n,k,请你找到大于 n 且能被 k 整除的最小整数 x。

输入格式

共一行,包含两个整数 n,k。

输出格式

输出大于 n 且能被 k 整除的最小整数 x。

数据范围

前 4 个测试点满足 1≤n,k≤100。
所有测试点满足 1≤n,k≤109。

输入样例1:

5 3

输出样例1:

6

输入样例2:

25 13

输出样例2:

26

输入样例3:

26 13

输出样例3:

39
#include<bits/stdc++.h>
using namespace std;
int main(){long long n,k;cin>>n>>k;cout<<(n/k+1)*k;return 0;
}

 4868. 数字替换

给定两个整数 n,x。

你可以对 x 进行任意次以下操作:

  • 选择 x� 的一位数字 y�,将 x� 替换为 x×y�×�。

请你计算通过使用上述操作,将 x� 变为一个 n� 位数字(不含前导 00),所需要的最少操作次数。

例如,当 n=3,x=2�=3,�=2 时,对 22 进行如下 44 次操作,即可使其变为 33 位数字:

  1. 将 22 替换为 2×2=42×2=4。
  2. 将 44 替换为 4×4=164×4=16。
  3. 将 1616 替换为 16×6=9616×6=96。
  4. 将 9696 替换为 96×9=86496×9=864。

输入格式

共一行,包含两个整数 n,x�,�。

输出格式

一个整数,表示将 x� 变为一个 n� 位数字,所需要的最少操作次数。

如果无解,则输出 -1

数据范围

所有测试点满足 2≤n≤192≤�≤19,1≤x<10n−11≤�<10�−1。

输入样例1:

2 1

输出样例1:

-1

输入样例2:

3 2

输出样例2:

4

输入样例3:

13 42

输出样例3:

12
#include <bits/stdc++.h>
using namespace std;int n, ans = 2e9;
long long x, st;
map<long long, int> used;int bfs()
{unordered_map<unsigned long long, int> s;queue<long long> q;q.push(x);while (q.size()){long long t = q.front();q.pop();for (long long p = t; p; p /= 10){if (p % 10 == 0 || p % 10 == 1) continue;unsigned long long k = p % 10 * t;if (s[p % 10 * t]) continue;q.push(k), s[k] = s[t] + 1;if (k >= st) return s[k];}}return -1;
}int main()
{scanf("%d%lld", &n, &x);st = pow(10, n - 1);printf("%d", bfs());return 0;
} 

4869. 异或值 

 

给定一个长度为 n� 的整数序列 a1,a2,…,an�1,�2,…,��。

请你找到一个非负整数 X�,使得 max1≤i≤n{ai⊕X}max1≤�≤�{��⊕�} 的值尽可能小,其中 ⊕⊕ 表示按位异或。

输出 max1≤i≤n{ai⊕X} 的最小可能值。

输入格式

第一行包含整数 n。

第二行包含 n 个整数 a1,a2,…,an。

输出格式

一个整数,表示 max1≤i≤n{ai⊕X} 的最小可能值。

数据范围

前 33 个测试点满足 1≤n≤3。
所有测试点满足 1≤n≤105,0≤ai≤230−1。

输入样例1:

3
1 2 3

输出样例1:

2

输入样例2:

2
1 5

输出样例2:

4
#include <iostream>
using namespace std;
const int N = 100010,M = 31 * N;
int n;
int a[N];
int tr[M][2],cnt[M],idx;
void insert (int x) {int u = 0;for (int i = 30;i >= 0;i--) {int t = x >> i & 1;if (!tr[u][t]) tr[u][t] = ++idx;u = tr[u][t];}cnt[u]++;
}
int query (int u,int k) {if (tr[u][0] && tr[u][1]) return (1 << k) + min (query (tr[u][0],k - 1),query (tr[u][1],k - 1));if (tr[u][0]) return query (tr[u][0],k - 1);if (tr[u][1]) return query (tr[u][1],k - 1);return 0;
}
int main () {cin >> n;for (int i = 1;i <= n;i++) {cin >> a[i];insert (a[i]);}cout << query (0,30) << endl;return 0;
} 

 

 

http://www.lryc.cn/news/29233.html

相关文章:

  • 计及需求响应的粒子群算法求解风能、光伏、柴油机、储能容量优化配置(Matlab代码实现)
  • 利用Nginx给RStudio-Server配置https
  • YOLOv7实验记录
  • 用Python获取史瓦西时空中克氏符的分量
  • QML编码约定
  • 【Linux】安装Linux操作系统具体步骤
  • 前端ES6异步编程技术——Promise使用
  • Kotlin实现简单的学生信息管理系统
  • 413. 等差数列划分
  • 设计模式七大原则
  • 【Mybatis系列】Mybatis常见的分页方法以及源码理解
  • Java面向对象:多态特性的学习
  • id函数 / 可变类型变量 / 不可变类型变量 / +=操作
  • aws apigateway 使用apigateway集成lambda
  • Linux SPI 驱动实验
  • [1.4]计算机系统概述——操作系统的体系结构
  • FPGA的GigE Vision IP相机图像采集方案设计,转换为千兆UDP,支持10G MAC
  • 大数据相关面试题
  • AI绘画第二步,抄作业复现超赞的效果!
  • Python的并发编程
  • 【Linux】基本系统维护命令
  • 高数:数列的收敛
  • 不平凡的一天——
  • 【Java基础】Map遍历的5种方式
  • 第十四届蓝桥杯三月真题刷题训练——第 2 天
  • 自然语言处理历史最全预训练模型(部署)汇集分享
  • csdn写文章自定义表格怎么做
  • Pytorch处理数据与训练网络问题汇总(协同训练)
  • 机器学习:基于神经网络对用户评论情感分析预测
  • Vue3之组件间传值避坑指南