首页 > TAG信息列表 > NOIP1998

[NOIP1998 普及组] 三连击

生成九位一到九的全排列,按题目分割、过滤 #include<iostream> #include<vector> #include<algorithm> bool vis[20]; int queue[50]; int answers[500]; int cnt=0; void search(int x) { for(int i=1;i<=9;i++)//每位数由1到9中的一个 { if(!vis[i]) {

[NOIP1998 普及组] 三连击

[NOIP1998 普及组] 三连击 思路:本题可以运用暴力枚举法,因为题目中有9个数字,所组成的3个三位数a,b,c的各个位数上的数的乘积与这已知的9个数的乘积相等,并且b=2*a,c=3*a。从能组成的最小三位数开始循坏,找满足条件的数即可。 代码如下: #include<iostream> #include<cstring> using nam

P1008 [NOIP1998 普及组] 三连击

P1008 [NOIP1998 普及组] 三连击 分析:根据题意,有1-9这9个数要分成三组组成三个三位数,意味着这9个数只能出现一次,且三个三位数的比例为1:2:3,由此可以得知这三个数中最小的那个数一定大于100小于333,我们可以写一个函数,设一个标记数组看是否出现重复的数字和0,如果出现就不符合题意,没有

P1008 [NOIP1998 普及组] 三连击

试题分析:将 1到9九个数分成 3 组,分别组成 3 个三位数,且使这 3个三位数构成 1:2:3的比例,数值较小,所以暴力枚举 算法分析:因为4*3=12,超过了10,所以百位的数最多为3,因为1到9每个数都要出现,所以不超过1000,且要判断是否全部出现,可以通过从第一个数高位往下依次乘应乘的倍数,过10便分离高位

[NOIP1998 普及组] 三连击

试题分析:题目要求三个三位数是由1~9中分成三组组成的,也就是说三个数中每个位数上的数字都不相同,然后三个三位数要符合1:2:3的比例关系,所以我们可以直接将i看做第1个三位数,剩下的两个分别*2,*3,这样就满足了1:2:3,然后我们将每个数字都分离出来,并进行比较,判断(这里的三位数组成中不可以带有

P1008 [NOIP1998 普及组] 三连击

题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。 题目描述 将 1, 2, \ldots , 91,2,…,9 共 99 个数分成 33 组,分别组成 33 个三位数,且使这 33 个三位数构成 1 : 2 : 31:2:3 的比例,试求出所有满足条件的 3

P1012 [NOIP1998 提高组] 拼数 [普及-]

https://www.luogu.com.cn/problem/P1012涉及知识点:字符串,排序橙色题   代码: #include<iostream> #include<string> #include<algorithm>//提供sort using namespace std; string s[25];//不多说 int n;//限制数字个数 bool cmp(string a,string b) { return a+b>b+

P1012 [NOIP1998 提高组] 拼数

洛谷题 题目传送门 首先,看到题目中的“最大”二字,基本可以断定这是一道排序题目 问题来了,怎样排序? 选择?冒泡?快排?归并? 都不用! 只需要用algorithm库里的sort! 但是,当我们使用sort排序排序整数时,会出现1000>999的情况,无法满足题目需求。于是我思来想去,决定用string字符串来满足题目需

NC16783 [NOIP1998]拼数

NC16783 [NOIP1998]拼数 题目 题目描述 设有 \(n\) 个正整数(\(n ≤ 20\)),将它们联接成一排,组成一个最大的多位整数。 例如:\(n=3\) 时,\(3\) 个整数 \(13\),\(312\) ,\(343\) 联接成的最大整数为:\(34331213\) 又如:$n=4 $ 时,\(4\) 个整数 \(7\) ,\(13\) ,\(4\) ,\(246\) 联接成的最大整数为

【P1013 [NOIP1998 提高组] 进制位】(2022.05.28)tg

【P1013 [NOIP1998 提高组] 进制位】 思路:(20分) 字母所代表的数字不重复,所以进制数l一定大于等于字母个数n−1,即l≥n−1 那么到底是几进制?可以考虑枚举,注意数据范围(3≤n≤9),如果可以枚举进制数l,判断在每个进制下的加法表是否合法,判断加法表考虑一下暴力 O(n2) ,复杂度完全可以接受

P1009 [NOIP1998 普及组] 阶乘之和

题目链接 https://www.luogu.com.cn/problem/P1009 题目思路 本题为高精度乘法 + 高精度加法 题目代码 #include <iostream> #include <algorithm> #include <cstring> using namespace std; const int N = 1010; int n; int a[N], b[N]; int main() { cin >> n;

P1012 [NOIP1998 提高组] 拼数

// Problem: P1012 [NOIP1998 提高组] 拼数 // Contest: Luogu // URL: https://www.luogu.com.cn/problem/P1012 // Memory Limit: 125 MB // Time Limit: 1000 ms // User: Pannnn #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdi

NOIP1998 普及:第一题 三连击

将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成    1:2:3的比例,试求出所有满足条件的三个三位数。    例如:三个三位数192,384,576满足以上条件。 样例 输入 无 输出 192 384 576 【参考代码】 #include<bits/stdc++.h> using namespace std; int s[11]; int m

P1012 [NOIP1998 提高组] 拼数

题目传送门 #include <bits/stdc++.h> using namespace std; const int N = 30; string a[N]; bool cmp(const string &a, const string &b) { //自定义排序函数,这一步非常巧妙,假设a=321,b=32;a+b=32132,b+a=32321 // 这样下面sort排下来就是32>321避免出现32132>32321的

【NOIP1998】 三连击 题解

文章转载前需和原作者联系,否则追究法律责任 题目链接:https://www.luogu.com.cn/problem/P1008 首先我们来分析一下题目。要求是枚举三个数,比例为1:2:3,且各个数字由1-9组成。 我们采用枚举的方式来进行这道题目。首先,数字满足两个条件(比例为1:2:3,且各个数字由1-9组成),我们只需要枚举

P1011 [NOIP1998 提高组] 车站

P1011 [NOIP1998 提高组] 车站 【题目描述】 火车从始发站(称为第 1 站)开出,在始发站上车的人数为 a,然后到达第 2 站,在第 2 站有人上、下车,但上、下车的人数相同,因此在第 2 站开出时(即在到达第 3 站之前)车上的人数保持为 a 人。从第 3 站起(包括第 3 站)上、下车的人数有一定规律:上车

P1013 [NOIP1998 提高组] 进制位

题意很不明晰,我就随便糊上去了。 在结果中出现的字母肯定得在加数中出现。因为不存在 \(1\) 进制,所以不妨假设题目的意思是一定有大于 \(0\) 的数出现,而正整数自己与自己相加肯定能得到更大的数,如此反复,一定会产生进位。 而加数均是一位的,所以进位后只可能有两位数并且高位一定是

[NOIP1998 普及组] 阶乘之和

题目链接 题目描述 用高精度计算出 S=1!+2!+3!+⋯+n!(n≤50)。 其中“!”表示阶乘,例如:5!=5×4×3×2×1。 输入格式 一个正整数 n。 输出格式 一个正整数 S,表示计算结果。 输入输出样例 输入 #1 3 输出 #1 9 说明/提示 【数据范围】 对于 100 % 的数据,1≤n≤50。 【其他说明】

洛谷-P1011 [NOIP1998 提高组] 车站

洛谷-P1011 [NOIP1998 提高组] 车站 原题链接:https://www.luogu.com.cn/problem/P1011 题目描述 输入格式 输出格式 输入输出样例 说明/提示 C++代码 题目描述 火车从始发站(称为第 \(1\) 站)开出,在始发站上车的人数为 \(a\),然后到达第 \(2\) 站,在第 \(2\) 站有人上、下车,但上

C++算法代码——三连击[NOIP1998 普及组]

题目来自:https://www.luogu.com.cn/problem/P1008 题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。 题目描述 将 1, 2, \ldots , 91,2,…,9 共 99 个数分成 33 组,分别组成 33 个三位数,且使这 33 个三位数构成