题目描述不过有些水题可能看着简单,但是实现起来还是挺麻烦的,要注意很多边边角角的细节,稍不留神就会WA。
给定 n $(n<=20)$ 把 1~n的n个数组成一个环,使得相邻的两个数和都是素数,如果不存在输出no solution
输入一个n $(2<=n<=20)$
输出输出这n个数 ,使得相邻的两个数都是素数,如果不存在输出no solution
样例输入14
样例输出11 2 3 4
提示如果存在多组,请输出字典序最小的那个
题解123456789101112131415161718192021222324252627282930313233343536373839404142434445#include<iostream>using namespace std;bool Flag=false;bool Index[21];bool flag[40];int ans[21];bool Prime(int n){ if(n<2) return false; for(int...
题目描述给定一个正整数n$(1<=n<=20)$,画出螺旋矩阵。
输入一个正整数n
输出对应画出螺旋矩阵
样例输入15
样例输出123451 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9
提示每一个数后输出空格
题解12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include <iostream>using namespace std;int a[21][21];int n;int main() { cin >> n; int x = 0, y = 0; a[x][y] = 1; for (int k = 2; k <= n * n; ) { while (true) { int nx = x, ny = y + 1; ...
题目描述图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个英文字符串。 每位借书的读者手中有一个需求码,这个需求码也是一个英文字符串。如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。 小L刚刚当上图书馆的管理员,他知道图书馆里所有书的图书编码,请你帮他写一个程序,对于每一位读者,求出他所需要的书中图书编码最小(按字典序比较)的那本书,如果没有他需要的书,请输出−1−1。
输入多组输入 输入的第一行,包含两个正整数 nn 和 qq,以一个空格分开,分别代表图书馆里书的数量和读者的数量。 接下来的 nn 行,每行包含一个英文字符串,代表图书馆里某本书的图书编码。 接下来的 qq 行,每行包含一个整数mm和一个英文字符串tt,以一个空格分开,第一个正整数mm代表图书馆里读者的需求码的长度,第二个字符串代表读者的需求码。
输出输出有 q 行,如果存在第 i 个读者所需要的书,则在第 i 行输出第 i 个读者所需要的书中图书编码最小的那本书的图书编码,否则输出-1。
样例输入12345678910115 5zbhefrabhefrengfd...
题目描述给出一个不小于12的正整数n,请你输出两个合数,使他们的和等于n。
样例输入1234312151000
样例输出1238 49 6500 500
题解123456789101112131415161718#include<bits/stdc++.h>using namespace std;int main() { int T; cin >> T; int n; while (T-- && cin >> n) { if (n & 1) { cout << 9 << " " << n - 9 << endl; } else { cout << 4 << " " << n - 4 << endl; } ...
题目描述有2N张牌,它们的点数分别为1到2N。Alice拿了其中的N张,Bob拿了剩下的N张. Alice和Bob会进行N轮游戏,在每轮游戏中,Alice 和Bob 各出一张牌。出了的牌不能收回。每轮谁的牌点数大谁就赢; 已知Bob 每一轮会出什么牌,试求Alice 最多能赢多少轮。
输入第一行是一个整数N,接下来N行,每行一个整数,表示Bob这轮会出什么。2<=N <= 100000,
输出Alice最多能赢几轮
样例输入1241 3 4 8
样例输出13
提示Bob手里的牌是1 3 4 8Alice手里的牌为2 5 6 7显然Alice 可以选择用
2 v 15 v 36 v 4这样就可以赢3轮
题解123456789101112131415161718192021222324252627282930313233343536373839404142434445#include<bits/stdc++.h>using namespace std;using ll = long long;#define endl '\n...
题目描述192这个数很厉害,用它分别乘以1、2、3,会得到:192 x 1 = 192192 x 2 = 384192 x 3 = 576把这三个乘积连起来,得到192384576,正好是一个19的全排列按字典序输出所有的k,满足k是19的全排列
输出每个k占一行
123456789101112131415161718#include<bits/stdc++.h>using namespace std;int main() { for (int x = 123; 3 * x <= 987; x++) { int y = 2 * x; int z = 3 * x; ostringstream oss; oss << x << y << z; string s = oss.str(); sort(s.begin(), s.end()); if (s ==...
题目描述把M个同样的珠子放在N个同样的盒子里,允许有的盒子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
输入第一行是测试数据的数目t$(0 <= t <= 20)$。以下每行均包含二个整数M和N,以空格分开。$0<=M$,$N<=25$。
输出对输入的每组数据M和N,用一行输出相应的K。
样例输入1217 3
样例输出18
题解C++1234567891011121314151617181920212223242526272829303132333435#include<bits/stdc++.h>using namespace std;using ll = long long;#define endl '\n'll dp[26][26];/** * 把m个苹果 放入N个盘子 * @param m 苹果数量 * @param n 盘子数量 * @return 不考虑顺序的方案数 */ll f(int m, int n) { i...
题目描述输入一个自然数N$(1<=N<=9)$,从小到大输出用1~N组成的所有排列,也就是说全排列。
例如:输入3,则输出
123
132
213
231
312
321
输入1输入一个自然数N(1<=N<=9)
输出1N的全排列,每行一个
样例输入12
样例输出121221
题解1234567891011121314151617181920212223#include <iostream>using namespace std;int a[9], n;bool book[9];void DFS(int k) { if (k >= n) { for (int i = 0; i < n; i++) cout << a[i]; cout << endl; return; } for (int i = 0; i < n; i++) { if (book[i]) co...
题目描述给定n个整数,对其进行m次查询。每次查询是一个范围l到r,求出l到r的最长上升连续子串。上升连续子串的定义为一个连续的子串且严格递增。
输入第一行是一个整数T,代表测试数据的组数。每组数据中第一行是一个整数n,m,代表有一共有n个人,m个查询。第二行共有n个整数,接下来m行是m次查询,每行两个整数l,r。
输出共T行,每行m个整数,代表最长上升连续字串。其中$T<=50$,$m<1e5$,每个数的大小不超过1e9。
样例输入1234514 23 2 4 51 31 4
样例输出12 3
题解12345678910111213141516171819202122232425#include <iostream>using namespace std;int main() { int T, n, m; cin >> T; while (T--) { cin >> n >> m; int num[n + 10], search[n + 10...
题目描述 暗黑游戏中,装备直接决定玩家人物的能力。可以使用Pg和Rune购买需要的物品。暗黑市场中的装备,每件有不同的价格(Pg和Rune)、能力值、最大可购买件数。Kid作为暗黑战网的一个玩家,当然希望使用尽可能少的Pg和Rune购买更优的装备,以获得最高的能力值。请你帮忙计算出现有支付能力下的最大可以获得的能力值。
输入第一行,三个整数N,P,R,分别代表市场中物品种类,Pg的支付能力和Rune的支付能力。第2..N+1行,每行四个整数,前两个整数分别为购买此物品需要花费的Pg,Rune,第三个整数若为0,则说明此物品可以购买无数件,若为其他数字,则为此物品可购买的最多件数(S),第四个整数为该装备的能力值。
输出仅一行,一个整数,最大可获得的能力值。
样例输入12343 10 105 3 0 1104 3 4 1202 3 1 130
样例输出1370
提示【样例解释】选第二种装备2件和第三种装备1件。【数据规模】对于30%的数据, 0<N<=50, 0<P<=30, 0<R<=30, 0<&...