首页 > 编程语言 >2024.1.27c++测试订正代码

2024.1.27c++测试订正代码

时间:2024-04-07 19:32:54浏览次数:21  
标签:2024.1 12 输出 int 样例 c++ 27 格式 输入

测试订正

生成括号

题目描述

王五是一名数学专业的同学,在课余选修了 C + + C++ C++编程课,现在他能够自己写程序判断判断一个给定的由 ′ ( ′ '(' ′(′和 ′ ) ′ ')' ′)′组成的字符串是否是正确匹配的。可是他不满足于此,想反其道而行之,设计一个程序,能够生成所有合法的括号组合,请你帮助他解决这个问题。

输入格式

输入只有一行N,代表生成括号的对数 ( 1 ≤ N ≤ 12 ) (1 ≤ N ≤ 12) (1≤N≤12)。

输出格式

输出所有可能的并且有效的括号组合,按照字典序进行排列,每个组合占一行。

样例 #1

样例输入 #1

3

样例输出 #1

((()))
(()())
(())()
()(())
()()()

代码

#include <bits/stdc++.h>
using namespace std;
int N;
bool judge(bitset<20>temp) {
	int j = 0, num1 = 0;
	while (j < 2*N) {
		if (temp[j]) {
			j++;
			num1++;
		} else {
			j++;
			num1--;
		}
		if (num1 < 0) {
			return false;
		}
	}
	return true;
}
int main() {
	cin >> N;
	int max = 1 << (2*N - 1);
	for (int i = 1; i < max; i++) {
		bitset<20> temp;
		int cnt0 = 0, cnt1 = 0;
		for (int j = 0; j < 2 * N; j++) {
			temp[j] = (i >> j) & 1;
			if (temp[j])
				cnt1++;
			else
				cnt0++;
		}
		if (cnt1 != cnt0)
			continue;
		if (judge(temp)) {
			for (int j = 0; j < 2 * N; j++) {
				if (temp[2 * N - 1 - j])
					cout << ")";
				else cout << "(";
			}
			cout << "\n";
		}
	}

}

装箱问题

题目描述

有一个箱子容量为 V V V,同时有 n n n 个物品,每个物品有一个体积。

现在从 n n n 个物品中,任取若干个装入箱内(也可以不取),使箱子的剩余空间最小。输出这个最小值。

输入格式

第一行共一个整数 V V V,表示箱子容量。

第二行共一个整数 n n n,表示物品总数。

接下来 n n n 行,每行有一个正整数,表示第 i i i 个物品的体积。

输出格式

  • 共一行一个整数,表示箱子最小剩余空间。

样例 #1

样例输入 #1

24
6
8
3
12
7
9
7

样例输出 #1

0

提示

对于 100 % 100\% 100% 数据,满足 0 < n ≤ 30 0<n \le 30 0<n≤30, 1 ≤ V ≤ 20000 1 \le V \le 20000 1≤V≤20000。

代码

#include<bits/stdc++.h>
using namespace std;
int a[50],b[20005];
int main()
{
	int V,n,i,j;
	cin>>V>>n;
	for(i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(i=1;i<=n;i++)
	{
		for(j=V;j>=a[i];j--)
		{
			b[j]=max(b[j],b[j-a[i]]+a[i]);
		}
	}
	cout<<V-b[V];
	return 0;
} 

数字组合

题目描述

有 n n n个正整数,找出其中和为 t t t( t t t也是正整数)的可能的组合方式。如: n = 5 , 5 n=5,5 n=5,5个数分别为 1 , 2 , 3 , 4 , 5 , t = 5 1,2,3,4,5,t=5 1,2,3,4,5,t=5,那么可能的组合有 5 = 1 + 4 5=1+4 5=1+4和 5 = 2 + 3 5=2+3 5=2+3和 5 = 5 5=5 5=5三种组合方式。

输入格式

输入的第一行是两个正整数 n n n和 t t t,用空格隔开,其中 1 < = n < = 20 1<=n<=20 1<=n<=20,表示正整数的个数, t t t为要求的和 ( 1 < = t < = 1000 ) (1<=t<=1000) (1<=t<=1000) 接下来的一行是 n n n个正整数,用空格隔开。

输出格式

和为 t t t的不同的组合方式的数目。

样例 #1

样例输入 #1

5 5
1 2 3 4 5

样例输出 #1

3

代码

#include<bits/stdc++.h>
using namespace std;
int a[1000],b[1000];
int main() {
	int m, n;
	cin>>m>>n;
	for (int i = 1; i <= m; i++) {
		cin>>a[i];
	}
	b[0] = 1;
	for (int i = 1; i <= m; i++) {
		for (int j = n; j >= a[i]; j--) {
			b[j] += b[j - a[i]];
		}
	}
	cout<<b[n];
	return 0;
}

新新口诀表

题目描述

Aya 在背乘法口诀表。但是 Aya 在背的是一种很新的乘法口诀表。

具体而言,他背诵的是 P进制的乘法口诀表。这样的乘法口诀表一共有 P − 1 P − 1 P−1 行,第 i i i 行有 i i i 列,第 j j j 列表示$ i\times j$ 的情况。每一列以空格隔开。乘法口诀表中的运算都在 P进制下进行。例如下图是 P = 4 P = 4 P=4的情况。

1*1=1
2*1=2 2*2=10
3*1=3 3*2=12 3*3=21

Aya 给了你 P,请你输出 P进制下的乘法表。

输入格式

输入一个正整数 P。

输出格式

输出 P PP 进制下的乘法表。P进制中大于等于 10 的数字用大写字母$ A、B、C、⋯ \cdots$表示。

例如: 12 ∗ 11 = 132 12*11=132 12∗11=132 在 15进制下表示为 C ∗ B = 8 C C*B=8C C∗B=8C 。

样例 #1

样例输入 #1

4

样例输出 #1

1*1=1
2*1=2 2*2=10
3*1=3 3*2=12 3*3=21

样例 #2

样例输入 #2

12

样例输出 #2

1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=10 4*4=14
5*1=5 5*2=A 5*3=13 5*4=18 5*5=21
6*1=6 6*2=10 6*3=16 6*4=20 6*5=26 6*6=30
7*1=7 7*2=12 7*3=19 7*4=24 7*5=2B 7*6=36 7*7=41
8*1=8 8*2=14 8*3=20 8*4=28 8*5=34 8*6=40 8*7=48 8*8=54
9*1=9 9*2=16 9*3=23 9*4=30 9*5=39 9*6=46 9*7=53 9*8=60 9*9=69
A*1=A A*2=18 A*3=26 A*4=34 A*5=42 A*6=50 A*7=5A A*8=68 A*9=76 A*A=84
B*1=B B*2=1A B*3=29 B*4=38 B*5=47 B*6=56 B*7=65 B*8=74 B*9=83 B*A=92 B*B=A1

提示

对于所有数据, 2 ≤ P ≤ 36 2 ≤ P ≤ 36 2≤P≤36。

代码

#include <bits/stdc++.h>
using namespace std;
char jz[38] {
	'0','1','2','3','4','5','6','7','8','9',
	'A','B','C','D','E','F','G','H','I','J',
	'K','L','M','N','O','P','Q','R','S','T',
	'U','V','W','X','Y','Z'
};
void zh(int n,int P) {
	if(n<P) {
		cout<<jz[n];
		return;
	}
	zh(n/P,P);
	cout<<jz[n%P];
}
void print(int a,int b,int P) {
	printf("%c*%c=",jz[a],jz[b]);
	int sum=a*b;
	zh(sum,P);
}
int main() {
	int P;
	cin>>P;
	for(int i=1; i<=P-1; i++) {
		for(int j=1; j<=i; j++) {
			print(i,j,P);
			cout<<" ";
		}
		cout<<endl;
	}
	return 0;
}

数砖数

题目描述

给定一种 2 × 2 2×2 2×2 规格的瓷砖,该瓷砖的式样为

##
.#

用这种瓷砖,从平面的左上角出发,将整个平面铺满,形如:

################
.#.#.#.#.#.#.#.#
################
.#.#.#.#.#.#.#.#
################
.#.#.#.#.#.#.#.#
################
.#.#.#.#.#.#.#.#

给定两个整数 n n n 与 m m m,请计算从左上角开始的 n n n 行 m m m 列的区域中,有多少格子是 #。

输入格式

第一行:单个整数表示 n n n

第二行:单个整数表示 m m m

输出格式

单个整数表示 # 格子的数量。

样例 #1

样例输入 #1

4
4

样例输出 #1

12

提示

30% 的数据, 1 ≤ n , m ≤ 100 1≤n,m≤100 1≤n,m≤100

60% 的数据, 1 ≤ n , m ≤ 1000 1≤n,m≤1000 1≤n,m≤1000

100% 的数据, 1 ≤ n , m ≤ 10000 1≤n,m≤10000 1≤n,m≤10000

代码

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

每次测试后要及时订正哦!

标签:2024.1,12,输出,int,样例,c++,27,格式,输入
From: https://blog.csdn.net/cmh20120102/article/details/137474757

相关文章

  • 【沈阳航空航天大学】 <C++ 类与对象计分作业>
    C++类与对象1.设计用类完成计算两点距离2.设计向量类3.求n!4.出租车收费类的设计与实现5.定义并实现一个复数类6.线性表类的设计与实现7.数组求和8.数组求最大值1.设计用类完成计算两点距离【问题描述】设计二维点类Point,包括私有成员:横坐标x,纵坐标y。能够......
  • 移除元素 -- 力扣第27题 -- 暴力、双指针解法
    题目https://leetcode.cn/problems/remove-element/description/给你一个数组nums 和一个值val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地修改输入数组。元素的顺序可以改变。你不需......
  • 【27.0】RBAC权限系统
    【一】什么是RBAC【1】概念RBAC是基于角色的访问控制(Role-BasedAccessControl)在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很......
  • C++初级----string类(STL)
    1、标准库中的string1.1、sring介绍    字符串是表示字符序列的类,标准的字符串类提供了对此类对象的支,其接口类似于标准字符容器的接口,但是添加了专门用于操作的单字节字符字符串的设计特性。    string类是使用char,即作为他的字符类型,使用他默认的char_tr......
  • 谷歌 Rust 团队工作效率是 C++ 团队的两倍
    谷歌Rust团队工作效率是C++团队的两倍来源:OSCHINA编辑: 白开水不加糖2024-04-0116:01:00 22国产数据库圈,为啥那么多水货?”谷歌Android工程总监LarsBergstrom在近期举行的RustNation大会上,介绍了该公司将Go或C++编写的项目迁移到Rust语言的......
  • 第十四届蓝桥杯省赛大学B组填空题(c++)
    日期统计:暴力枚举+set(自带排序加去重)#include<iostream>#include<set>usingnamespacestd;set<int>ans;inta[100]={5,6,8,6,9,1,6,1,2,4,9,1,9,8,2,3,6,4,7,7,5,9,5,0,3,8,7,5,8,1,5,8,6,1,8,3,0,3,7,9,2,7,0,5,8,......
  • C++:类的静态成员
    无关类的实例化对象,是类自身的参数,所有同一类下的所有对象公用的成员使用如下classMyClass{public:staticintsta;//定义静态成员inta;charb;public:MyClass();~MyClass();//intoperator>=(MyClassA)//{//return......
  • C++:重载符operator
    我们可以在类中使用重载符进行符号功能重载<返回类型>operator<重载的符号>(形参){//function} 下面重载一个符号"≥"classMyClass{public:inta;charb;public:MyClass();~MyClass();intoperator>=(MyClassA){......
  • C++:union类型
    class和struct在C++上基本没啥区别,就只有class成员权限默认为private而struct默认为public而union和前两者稍有不同,其最大的区别在于内部成员变量共享一块内存,只是这个内存可以存放不同的变量类型(占用内存大小选取取占用最大的成员变量的占用内存),所以每次无论对哪个成员更改都......
  • C++ //练习 11.14 扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair
    C++Primer(第5版)练习11.14练习11.14扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair的vector,保存孩子的名和生日。环境:LinuxUbuntu(云服务器)工具:vim 代码块/************************************************************************* >Fil......