• 2024-07-04洛谷 P1011 [NOIP1998 提高组] 车站
    题目描述火车从始发站(称为第 1 站)开出,在始发站上车的人数为 a,然后到达第 2 站,在第 2 站有人上、下车,但上、下车的人数相同,因此在第 2 站开出时(即在到达第 3 站之前)车上的人数保持为 a 人。从第 3 站起(包括第 3 站)上、下车的人数有一定规律:上车的人数都是前两
  • 2024-05-20CSP历年复赛题-P1008 [NOIP1998 普及组] 三连击
    原题链接:https://www.luogu.com.cn/problem/P1008题意解读:将 1,2,…,9共 9个数分成3组,分别组成3个三位数,且使这 3 个三位数构成 1:2:3的比例,枚举所有的组合即可。解题思路:设定三个数a、b、c枚举a,最小123,最大987b=a*2,c=a*3判断b、c是否是三位数,且a、b、c中所
  • 2024-05-20CSP历年复赛题-P1009 [NOIP1998 普及组] 阶乘之和
    原题链接:https://www.luogu.com.cn/problem/P1009题意解读:  利用高精度计算阶乘之和,需要用到高精度乘法(高精度乘低精度)、高精度加法。  首先,思考不利用高精度如何解题,直观方法就是遍历i从1到n,每次乘i得到i的阶乘,然后累加到结果,代码如下:#include<bits/stdc++.h>usingnam
  • 2024-05-20CSP历年复赛题-P1010 [NOIP1998 普及组] 幂次方
    原题链接:https://www.luogu.com.cn/problem/P1010题意解读:输出一个正整数的2的幂次方表示,需要用到二进制数学知识,将整数拆解成2的次幂之和,幂次方也要进行拆解,因此容易想到通过递归处理。解题思路:先看样例,给定整数137,要拆解成2的幂次方之和,先考虑i使得刚好137>=2^i时,i取7,因此2
  • 2024-05-04P1010 [NOIP1998 普及组] 幂次方
    题目:P1010[NOIP1998普及组]幂次方[NOIP1998普及组]幂次方题目描述任何一个正整数都可以用2的幂次方表示。例如137=27+23+2^0。同时约定次方用括号来表示,即a^b可表示为a(b)。由此可知,137可表示为2(7)+2(3)+2(0)进一步:$7=22+2+20(2^1用2表示),并且3=2+2^
  • 2024-02-21洛谷题单指南-递推与递归-P1010 [NOIP1998 普及组] 幂次方
    原题链接:https://www.luogu.com.cn/problem/P1010题意解读:输出一个正整数的2的幂次方表示,需要用到二进制数学知识,将整数拆解成2的次幂之和,幂次方也要进行拆解,因此容易想到通过递归处理。解题思路:先看样例,给定整数137,要拆解成2的幂次方之和,先考虑i使得刚好137>=2^i时,i取7,因此2
  • 2024-02-19P1012 [NOIP1998 提高组] 拼数
    题目 源代码一、错误示范1//去比较最高位数字的大小,大的在前面(ASCII比较)2//使用字符串存储多个数字3#include<iostream>4#include<algorithm>5usingnamespacestd;6structstu7{8strings;9}student[25];10boolcmp(stua,stub)11{
  • 2024-02-17P1011 [NOIP1998 提高组] 车站
    题目描述火车从始发站(称为第11站)开出,在始发站上车的人数为aa,然后到达第22站,在第22站有人上、下车,但上、下车的人数相同,因此在第22站开出时(即在到达第33站之前)车上的人数保持为aa人。从第33站起(包括第33站)上、下车的人数有一定规律:上车的人数都是前两站上车人数
  • 2024-02-14P1012 [NOIP1998 提高组] 拼数
    [NOIP1998提高组]拼数题目描述设有\(n\)个正整数\(a_1\dotsa_n\),将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。输入格式第一行有一个整数,表示数字个数\(n\)。第二行有\(n\)个整数,表示给出的\(n\)个整数\(a_i\)。输出格式一个正整数,表示最大的整数样
  • 2024-02-07幂次方
    [NOIP1998普及组]幂次方题目描述任何一个正整数都可以用的幂次方表示。例如$137=27+23+2^0$。同时约定次方用括号来表示,即可表示为。由此可知,可表示为进一步:(用表示),并且。所以最后可表示为。又如所以最后可表示为。输入格式一行一个正整数。输出格式符
  • 2024-01-20[NOIP1998 普及组] 三连击
    [NOIP1998普及组]三连击题目背景本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。题目描述将共个数分成组,分别组成个三位数,且使这个三位数构成的比例,试求出所有满足条件的个三位数。输入格式无输出格式若干行,每行个
  • 2023-12-25P1010 [NOIP1998 普及组] 幂次方(十进制转二进制)(递归)
    P1010[NOIP1998普及组]幂次方个人感想终于能真正自主解决一道纯递归题目了,完成前面那次P1928外星密码的遗憾了十进制转化二进制再处理也顺利搞定(之前洛谷月赛就有相似题目,当时觉得很难就没写,太亏了)十进制转二进制样例:inta[]while(n!=0){ if(n%2==1){ a
  • 2023-11-04[NOIP1998 普及组] 阶乘之和
    [NOIP1998普及组]阶乘之和题目描述用高精度计算出()。其中!表示阶乘,定义为。例如,。输入格式一个正整数。输出格式一个正整数,表示计算结果。样例#1样例输入#13样例输出#19提示【数据范围】对于的数据,。【其他说明】注,《深入浅出基础篇》中使用本题作为例题,但是其数据范围
  • 2023-09-16P1009 [NOIP1998 普及组] 阶乘之和
    题目描述用高精度计算出 S=1!+2!+3!+\cdots+n!S=1!+2!+3!+⋯+n!(n\le50n≤50)。其中 ! 表示阶乘,定义为 n!=n\times(n-1)\times(n-2)\times\cdots\times1n!=n×(n−1)×(n−2)×⋯×1。例如,5!=5\times4\times3\times2\times1=1205!=5×4×3×2×1=
  • 2023-08-29洛谷P1013 [NOIP1998 提高组] 进制位
    P1013[NOIP1998提高组]进制位P1013题目传送门这是一道提高+/省选-的蓝题,有亿点点难度,我们先分析一下。分析字母的数量等于进制的大小,判错的时候,可以看一下那个表格右下角的一个等腰三角形,就会发现有一个由两位字母组成的三角形。我们验算一下,对于\(L\),在该三角形的双位字
  • 2023-08-18P1012 [NOIP1998 提高组] 拼数
     题解:这道题最大的坑:32和321,32321>32132 1#include<bits/stdc++.h>2usingnamespacestd;3stringa[25];4boolcmp(conststring&a,conststring&b)5{6return(a+b>b+a);//这里太妙了7}8intmain()9{10int
  • 2023-01-21P1008 [NOIP1998 普及组] 三连击
    置顶题解暴力,加简化的判断,数学原理,2个集合内所有数相加相乘结果一样,2个集合的内容一样(没错我自己编得,灵感并不是我自己的,感谢帮我的大大)置顶的题解中的数学原理应该是
  • 2023-01-18P1012 [NOIP1998 提高组] 拼数
    P1012[NOIP1998提高组]拼数#include<stdio.h>#include<stdlib.h>#include<string.h>#defineLENGTH11intminn(inta,intb){returna<b?a:b;}
  • 2022-08-21P1008 [NOIP1998 普及组] 三连击
    P1008[NOIP1998普及组]三连击 题目描述:将1,2,…,9共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。这道
  • 2022-08-21[NOIP1998 普及组] 三连击
    生成九位一到九的全排列,按题目分割、过滤#include<iostream>#include<vector>#include<algorithm>boolvis[20];intqueue[50];intanswers[500];intcnt=0;void
  • 2022-08-14P1008 [NOIP1998 普及组] 三连击
    P1008[NOIP1998普及组]三连击分析:根据题意,有1-9这9个数要分成三组组成三个三位数,意味着这9个数只能出现一次,且三个三位数的比例为1:2:3,由此可以得知这三个数中最小的那
  • 2022-08-14[NOIP1998 普及组] 三连击
    [NOIP1998普及组]三连击思路:本题可以运用暴力枚举法,因为题目中有9个数字,所组成的3个三位数a,b,c的各个位数上的数的乘积与这已知的9个数的乘积相等,并且b=2*a,c=3*a。从能
  • 2022-08-14P1008 [NOIP1998 普及组] 三连击
    #include<bits/stdc++.h>usingnamespacestd;intmain(){ for(inta=123,b,c;a<=329;a++) { b=2*a;c=3*a; if((a%10)*(a/10%10)*(a/100)*(b%10)*(b/10%10)*(b/100)*(c%1
  • 2022-08-14P1008 [NOIP1998 普及组] 三连击
    试题分析:将1到9九个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,数值较小,所以暴力枚举算法分析:因为4*3=12,超过了10,所以百位的数最多为3,因为1到9每个
  • 2022-08-14 [NOIP1998 普及组] 三连击
    试题分析:题目要求三个三位数是由1~9中分成三组组成的,也就是说三个数中每个位数上的数字都不相同,然后三个三位数要符合1:2:3的比例关系,所以我们可以直接将i看做第1个三位数,剩