上海国际建设总承包公司网站,网页设计制作实训总结,宝安网站设计排名,c2c商城网站建设公司4867. 整除数
给定两个整数 n,k#xff0c;请你找到大于 n 且能被 k 整除的最小整数 x。
输入格式
共一行#xff0c;包含两个整数 n,k。
输出格式
输出大于 n 且能被 k 整除的最小整数 x。
数据范围
前 4 个测试点满足 1≤n,k≤100。 所有测试点满足 1≤n,k≤109。
…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
#includebits/stdc.h
using namespace std;
int main(){long long n,k;cinnk;cout(n/k1)*k;return 0;
} 4868. 数字替换
给定两个整数 n,x。
你可以对 x 进行任意次以下操作
选择 x 的一位数字 y将 x 替换为 x×y×。
请你计算通过使用上述操作将 x 变为一个 n 位数字不含前导 00所需要的最少操作次数。
例如当 n3,x23,2 时对 22 进行如下 44 次操作即可使其变为 33 位数字
将 22 替换为 2×242×24。将 44 替换为 4×4164×416。将 1616 替换为 16×69616×696。将 9696 替换为 96×986496×9864。
输入格式
共一行包含两个整数 n,x,。
输出格式
一个整数表示将 x 变为一个 n 位数字所需要的最少操作次数。
如果无解则输出 -1。
数据范围
所有测试点满足 2≤n≤192≤≤191≤x10n−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;
maplong long, int used;int bfs()
{unordered_mapunsigned long long, int s;queuelong 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,…,an1,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≤1050≤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;
}