数据库作业
1 | create database ex3_2; |
1 | create database ex3_2; |
陈老师留的Java课后思考题,感觉挺好玩。
顺便学习一下 STL 的用法。
1 | import java.util.HashSet; |
感谢:https://wenku.baidu.com/view/287eae9b7d1cfad6195f312b3169a4517623e552.html
https://pintia.cn/problem-sets/1547030907058900992/problems/type/7
https://bytodance.feishu.cn/docx/doxcnlU4LYJDgWIdAcmpHloAMoe
分数 10
作者 林生佑
单位 浙江传媒学院
求出区间[a,b]中所有整数的质因数分解,2<=a<=b<=10000。
输入两个整数a,b。
每行输出一个数的分解,形如k=a1_a2_a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看样例)
1 | 3 10 |
1 | 3=3 |
1 | #include <algorithm> |
分数 20
作者 xxxtentx
单位 江西财经大学
欢迎来到交界之地,褪色者。
恶名昭彰的BOSS“接肢”葛瑞克通过接肢来提升自己的力量,但是最初的葛瑞克十分弱小,接肢数量仅为可怜的1。接下来褪色者会和葛瑞克进行战斗。
假设褪色者面对葛瑞克战败后,再一次挑战葛瑞克时,葛瑞克会在自己原来的身体上通过接肢加强自己的力量,而接肢的数量是以指数递增的。比如褪色者第二次挑战时(假设褪色者不可能第一次就打败葛瑞克),接肢的数量就是第一次的数量 * 2,第三次挑战就是第二次的数量 * 3,以此类推。
褪色者通过攻击来解肢击败葛瑞克,而褪色者的攻击伤害只有质数才会对BOSS造成伤害,合数的攻击对于BOSS无效。且每次攻击伤害都只能从2开始,除非本次攻击无法完全整数解肢(比如接肢数量为21时,伤害为2无法解肢,只有伤害增加到3时才可以攻击BOSS解肢,攻击后接肢数量为7),那么就会伤害增加一点继续攻击BOSS。
当葛瑞克的接肢数量回到最初的起点的时候,即为战胜BOSS。
题目给出褪色者最终战胜葛瑞克所挑战的次数n。
题目要求你输出战胜葛瑞克时,褪色者的攻击的伤害a和伤害a的攻击次数b,a和b之间用空格隔开。并且每一组伤害独占一行输出,且每一行依次递增的输出伤害。
2 ≤ n ≤ 106
1 | 5 |
1 | 2 3 |
1 | #include <algorithm> |
分数 5
全屏浏览题目
切换布局
作者 HDOJ
单位 绍兴文理学院
输入两个整数A、B,求 A + B。
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入2个正整数A、B。整数可能很大,但每个整数的位数不会超过1000。
对于每组测试输出两行数据;第一行输出”Case #:”,#表示测试组号,第二行输出形式为“A + B = Sum”,Sum表示A+B的结果。每两组测试数据之间空一行。
1 | 2 |
1 | Case 1: |
HDOJ 1002
1 | T = int(input()) |
分数 5
全屏浏览题目
切换布局
作者 xxxtentx
单位 江西财经大学
给定两个正整数(不含前导0),计算它们的差,计算结果可能为负数。
共两行,每行包含一个整数。
共一行,包含所求的差。
1 ≤ 整数长度 ≤ 105
在这里给出一组输入。例如:
1 | 32 |
在这里给出相应的输出。例如:
1 | 21 |
1 | a = int(input()) |
分数 5
作者 xxxtentx
单位 江西财经大学
给定两个非负整数(不含前导 0) A 和 B,请你计算 A×B 的值。
共两行,第一行包含整数 A,第二行包含整数 B。
共一行,包含 A×B 的值。
1 ≤ A的长度 ≤ 100000,
0 ≤ B ≤ 10000
在这里给出一组输入。例如:
1 | 2 |
1 | 6 |
1 | a = int(input()) |
分数 20
作者 翁恺
单位 浙江大学
这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。
提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比如,程序输入31,那么就输出3584229390681和15,因为31乘以3584229390681的结果是111111111111111,一共15个1。
输入在一行中给出一个不以5结尾的正奇数x(<1000)。
在一行中输出相应的最小的s和n,其间以1个空格分隔。
1 | 31 |
1 | 3584229390681 15 |
模拟除法,先找到一个比所求大的111…,再输出除以n的商
1 | #include <algorithm> |
分数 10
全屏浏览题目
切换布局
作者 黄正鹏
单位 贵州工程应用技术学院
由欧几里得的辗转相除法可知,对于任何正整数 A
和 B ,都存在这样的整数 X 和 Y , AX+BY=D ,其中 D 是
A 和 B 的最大公约数。本题要求,对于给定的 A 和 B ,
找到对应的 X , Y 和 D 。
输入给出一些行,每行由空格隔开的整数 A 和 B 组成, 0<A,
B<1000000001 。
对于每个输入行,输出一行,由三个用空格隔开的整数 X 、 Y 和 D组成。如果有若干个满足条件的 X 和 Y ,那么就输出 |X |+|Y| 最小的那对。如果还是有若干个 X 和 Y 满足最小准则,则输出 X≤Y 的那一对。
1 | 4 6 |
1 | -1 1 2 |
1 | #include <algorithm> |
分数 25
全屏浏览题目
切换布局
作者 CCF_NOIP
单位 江西财经大学
组合数 Cnm 表示的是从 n 个物品中选出 m 个物品的方案数。举个例子,从 (1,2,3) 三个物品中选择两个物品可以有 (1,2),(1,3),(2,3) 这三种选择方法。根据组合数的定义,我们可以给出计算组合数 Cnm 的一般公式:
Cnm=m!(n−m)!n!
其中 n!=1×2×⋯×n;特别地,定义 0!=1。
小葱想知道如果给定 n,m 和 k,对于所有的 0≤i≤n,0≤j≤min(i,m) 有多少对 (i,j) 满足 Cij 是 k 的倍数。
第一行有两个整数 t,k,其中 t 代表该测试点总共有多少组测试数据,k 的意义见问题描述。
接下来 t 行每行两个整数 n,m,其中 n,m 的意义见问题描述。
共 t 行,每行一个整数代表所有的 0≤i≤n,0≤j≤min(i,m) 中有多少对 (i,j) 满足 Cij 是 k 的倍数。
0≤n,m≤2×103,
2≤k≤21,
1≤t≤104
在这里给出一组输入。例如:
1 | 1 2 |
在这里给出相应的输出。例如:
1 | 1 |
【样例说明】
在所有可能的情况中,只有 C21=2 一种情况是 2 的倍数。
1 | #include <algorithm> |
分数 5
全屏浏览题目
切换布局
作者 陈越
单位 浙江大学
世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。
输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。
在一行中按照“yyyy-mm-dd”的格式给出年、月、日。
1 | 03-15-2017 |
1 | 2017-03-15 |
1 | #include <iostream> |
1-2 比较大小
分数 10
全屏浏览题目
切换布局
作者 杨起帆
单位 浙大城市学院
本题要求将输入的任意3个整数从小到大输出。
输入在一行中给出3个整数,其间以空格分隔。
在一行中将3个整数从小到大输出,其间以“->”相连。
1 | 4 2 8 |
1 | 2->4->8 |
1 | #include <iostream> |
分数 15
全屏浏览题目
切换布局
作者 陈越
单位 浙江大学
“666”是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思。如果你以为这就是厉害的最高境界,那就错啦 —— 目前的最高境界是数字“27”,因为这是 3 个 “9”!
本题就请你编写程序,将那些过时的、只会用一连串“6666……6”表达仰慕的句子,翻译成最新的高级表达。
输入在一行中给出一句话,即一个非空字符串,由不超过 1000 个英文字母、数字和空格组成,以回车结束。
从左到右扫描输入的句子:如果句子中有超过 3 个连续的 6,则将这串连续的 6 替换成 9;但如果有超过 9 个连续的 6,则将这串连续的 6 替换成 27。其他内容不受影响,原样输出。
1 | it is so 666 really 6666 what else can I say 6666666666 |
1 | it is so 666 really 9 what else can I say 27 |
1 | #include <algorithm> |
分数 15
全屏浏览题目
切换布局
作者 陈越
单位 浙江大学
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。
输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。
考生信息之后,给出一个正整数 M(≤N),随后一行中给出 M 个待查询的试机座位号码,以空格分隔。
对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用 1 个空格分隔。
1 | 4 |
1 | 3310120150912002 2 |
1 | #include <algorithm> |
分数 20
全屏浏览题目
切换布局
作者 陈越
单位 浙江大学
天梯赛是个善良的比赛。善良的命题组希望将题目难度控制在一个范围内,使得每个参赛的学生都有能做出来的题目,并且最厉害的学生也要非常努力才有可能得到高分。
于是命题组首先将编程能力划分成了 106 个等级(太疯狂了,这是假的),然后调查了每个参赛学生的编程能力。现在请你写个程序找出所有参赛学生的最小和最大能力值,给命题组作为出题的参考。
输入在第一行中给出一个正整数 N(≤2×104),即参赛学生的总数。随后一行给出 N 个不超过 106 的正整数,是参赛学生的能力值。
第一行输出所有参赛学生的最小能力值,以及具有这个能力值的学生人数。第二行输出所有参赛学生的最大能力值,以及具有这个能力值的学生人数。同行数字间以 1 个空格分隔,行首尾不得有多余空格。
1 | 10 |
1 | 75 3 |
1 | #include <algorithm> |
分数 20
全屏浏览题目
切换布局
作者 DAI, Longao
单位 杭州百腾教育科技有限公司
在 MMORPG《最终幻想14》的副本“乐欲之所瓯博讷修道院”里,BOSS 机工士姆斯塔迪奥将会接受玩家的挑战。
你需要处理这个副本其中的一个机制:N×M 大小的地图被拆分为了 N×M 个 1×1 的格子,BOSS 会选择若干行或/及若干列释放技能,玩家不能站在释放技能的方格上,否则就会被击中而失败。
给定 BOSS 所有释放技能的行或列信息,请你计算出最后有多少个格子是安全的。
输入第一行是三个整数 N,M,Q (1≤N×M≤105,0≤Q≤1000),表示地图为 N 行 M 列大小以及选择的行/列数量。
接下来 Q 行,每行两个数 Ti,Ci,其中 Ti=0 表示 BOSS 选择的是一整行,Ti=1 表示选择的是一整列,Ci 为选择的行号/列号。行和列的编号均从 1 开始。
输出一个数,表示安全格子的数量。
1 | 5 5 3 |
1 | 12 |
1 | #include <algorithm> |
分数 20
全屏浏览题目
切换布局
作者 陈越
单位 浙江大学

以上图片来自新浪微博。
本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是:
I;can you、could you 对应地换成 I can、I could—— 这里“独立”是指被空格或标点符号分隔开的单词;I 和 me 换成 you;? 换成惊叹号 !;输入首先在第一行给出不超过 10 的正整数 N,随后 N 行,每行给出一句不超过 1000 个字符的、以回车结尾的用户的对话,对话为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。
按题面要求输出,每个 AI 的回答前要加上 AI: 和一个空格。
1 | 6 |
1 | Hello ? |
1 | #include <algorithm> |
https://pintia.cn/problem-sets/1546381984669618176
分数 5
作者 唐艳琴
单位 中国人民解放军陆军工程大学
本题目要求读入1个正整数A,判断A是否为素数。
输入1个正整数A。
输出A是或否为素数。
1 | 2 |
1 | 2 yes |
1 | #include <algorithm> |
分数 5
作者 wangxj
单位 临沂大学
输入一个十进制的整数。将它转换为二进制数、八进制数和十六进制数。
输入一个不超过100的十进制整数。
在一行内输出对应的二进制数、八进制数和十六进制数,以空格隔开。
在这里给出一组输入。例如:
1 | 8 |
在这里给出相应的输出。例如:
1 | 1000 10 8 |
1 | #include <algorithm> |
分数 10
作者 c++课程组
单位 湖州师范学院
求1~n区间有多少个素数。(n<4×107)
一个数n
一个数,表示1~n区间有多少个素数。
1 | 10 |
1 | 4 |
1 | #include <iostream> |
分数 10
作者 李体新
单位 保定学院
本题目要求读入2个正整数A和B,输出它们的最大公约数和最小公倍数。
输入在一行中给出2个绝对值不超过1000的整数A和B。
在一行中输出A和B的最大公约数和最小公倍数。
1 | 16 24 |
1 | 8 48 |
1 | #include <algorithm> |
分数 10
作者 杜祥军
单位 青岛大学
1∼N 中与 N 互质的数的个数被称为欧拉函数,记为ϕ(N)。
若在算数基本定理中,N=p^a1p^a2…pa^m,则:
ϕ(N) = N×(p1−1)/p1×(p2−1)/p2×…×(pm−1)/pm;
第一行输入一个n,接下来行每行包含一个正整数ai,输出ai的欧拉函数。
数据范围:1<=n<=100,1<=ai<=2*10^9
共一行,包含一个整数,表示 1∼n 中每个数的欧拉函数之和。
1 | 3 |
1 | 2 |
1 | #pragma GCC optimize(2) |
分数 15
全屏浏览题目
切换布局
作者 aa
单位 江西财经大学
给定一个正整数 n,求 1∼n 中每个数的欧拉函数之和。
共一行,包含一个整数 n。
共一行,包含一个整数,表示 1∼n 中每个数的欧拉函数之和。
1≤n≤10^6
在这里给出一组输入。例如:
1 | 6 |
在这里给出相应的输出。例如:
1 | 12 |
1 | #include <algorithm> |
分数 20
作者 aa
单位 江西财经大学
模拟程序型计算器,依次输入指令,可能包含的指令有
1. 数字:‘NUM X’,X为一个只包含大写字母和数字的字符串,表示一个当前进制的数
2. 运算指令:‘ADD’,‘SUB’,‘MUL’,‘DIV’,‘MOD’,分别表示加减乘,除法取商,除法取余
3. 进制转换指令:‘CHANGE K’,将当前进制转换为K进制(2≤K≤36)
4. 输出指令:‘EQUAL’,以当前进制输出结果
5. 重置指令:‘CLEAR’,清除当前数字
指令按照以下规则给出:
数字,运算指令不会连续给出,进制转换指令,输出指令,重置指令有可能连续给出
运算指令后出现的第一个数字,表示参与运算的数字。且在该运算指令和该数字中间不会出现运算指令和输出指令
重置指令后出现的第一个数字,表示基础值。且在重置指令和第一个数字中间不会出现运算指令和输出指令
进制转换指令可能出现在任何地方
运算过程中中间变量均为非负整数,且小于2^63。
以大写的’A’‘Z’表示1035
第1行:1个n,表示指令数量
第2…n+1行:每行给出一条指令。指令序列一定以’CLEAR’作为开始,并且满足指令规则
输出格式
依次给出每一次’EQUAL’得到的结果
依次给出每一次’EQUAL’得到的结果
1 | 7 |
1 | 2040 |
1 | 蓝桥杯国赛题,下次一定写... |
题目集链接,非本校同学可能打不开 https://pintia.cn/problem-sets/1546142650662113280/submissions
分数 10
作者 xxxtentx
单位 江西财经大学
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
在这里给出一组输入。例如:
1 | 1234567890987654321123456789 |
在这里给出相应的输出。例如:
1 | yi san wu |
没什么难度
1 | #include <algorithm> |
分数 25
作者 江太白
单位 江西财经大学
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
每个测试输入包含 1 个测试用例,格式为
第 1 行:正整数 n
第 2 行:第 1 个学生的姓名 学号 成绩
第 3 行:第 2 个学生的姓名 学号 成绩
… … …
第 n+1 行:第 n 个学生的姓名 学号 成绩
其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。
1 | 3 |
1 | Mike CS991301 |
复习一下结构体存储数据和sort函数的用法。
1 | #include <algorithm> |
分数 20
作者 xxxtentx
单位 江西财经大学
编写一个日期类,要求按 xxxx-xx-xx 的格式输出日期,实现加一天的操作。
第一行包含整数 T,表示共有 T 组测试数据。
每组数据占一行,包含 3 个用空格隔开的整数,分别表示年月日。
每组数据输出一行,一个结果,按 xxxx-xx-xx 的格式输出,表示输入日期的后一天的日期。
输入日期保证合法且不会出现闰年。
年份范围 [1000,3000]
在这里给出一组输入。例如:
1 | 2 |
在这里给出相应的输出。例如:
1 | 1999-10-21 |
日期类问题一直是模拟题中的难点,可以参考 https://www.acwing.com/blog/content/5918/ 来进行学习
1 | #include <algorithm> |
分数 25
作者 江太白
单位 江西财经大学
给定两个日期,请你计算这两个日期之间有少天(定义连续的日期之差为2天)
共两行,每一行输入一个日期,日期格式为yyyy-MM-dd
一个正整数,为两个日期之间的差
1 | 2021-07-02 |
1 | 14 |
1 | #include <algorithm> |
分数 20
作者 xxxtentx
单位 江西财经大学
打印一个由数字 0∼n 构成的菱形。
其中 n 位于正中心,数字靠近边缘时逐个递减,直至为 0。
例如,当 n=5 时,图形如下所示:
1 | 0 |
现在,给定 n,请你打印相应菱形。
一个整数 n。
输出相应菱形。
2 ≤ n ≤ 9
在这里给出一组输入。例如:
1 | 2 |
在这里给出相应的输出(注意每一个数字后面都有一个空格)。例如:
1 | 0 |
tips:第一行的0前面有4个空格,后面有5个空格
找规律的题目,规律与哈密顿距离有关(平面距离某一点的距离,就是那两个abs)
1 | #include <algorithm> |
还不解封,人要疯。
Dfs 暴力枚举每一位,似乎没什么好办法,具体看注释吧。
Given a sequence of consecutive integers n,n+1,n+2,…,m, an anti-prime sequence is a rearrangement of these integers so that each adjacent pair of integers sums to a composite (non-prime) number. For example, if n = 1 and m = 10, one such anti-prime sequence is 1,3,5,4,2,6,9,7,8,10. This is also the lexicographically first such sequence.
给定一个连续的整数序列n,n+1,n+2,…,m,反素数序列是这些整数的重新排列,使得每个相邻的整数对和为一个合成(非素数)数。例如,如果n=1,m=10,则一个这样的反素数序列是1,3,5,4,2,6,9,7,8,10。这也是字典顺序上第一个这样的序列。
We can extend the definition by defining a degree danti-prime sequence as one where all consecutive subsequences of length 2,3,…,d sum to a composite number. The sequence above is a degree 2 anti-prime sequence, but not a degree 3, since the subsequence 5, 4, 2 sums to 11. The lexicographically .rst degree 3 anti-prime sequence for these numbers is 1,3,5,4,6,2,10,8,7,9.
我们可以通过定义阶反素数序列来扩展该定义,其中长度为2,3,…,d的所有连续子序列和为一个合成数。上述序列是2次反素数序列,但不是3次反素数序列,因为子序列5、4、2之和为11。这些数的第一个3次反素数序列的词典顺序是1,3,5,4,6,2,10,8,7,9。
Input will consist of multiple input sets. Each set will consist of three integers, n, m, and d on a single line. The values of n, m and d will satisfy 1 <= n < m <= 1000, and 2 <= d <= 10. The line 0 0 0 will indicate end of input and should not be processed.
输入将由多个输入集组成。每组由三个整数组成,n、m和d,放在一行。n、m和d的值将满足1 <= n < m <= 1000,和2 <= d <= 10。0 0 0将表示输入结束,不应该被处理。
For each input set, output a single line consisting of a comma-separated list of integers forming a degree danti-prime sequence (do not insert any spaces and do not split the output over multiple lines). In the case where more than one anti-prime sequence exists, print the lexicographically first one (i.e., output the one with the lowest first value; in case of a tie, the lowest second value, etc.). In the case where no anti-prime sequence exists, output
No anti-prime sequence exists.
对于每个输入集,输出一个由逗号分隔的整数列表组成的单行,形成一个度数的反素数序列(不要插入任何空格,不要将输出分成多行)。在存在多个反素数序列的情况下,打印按字母顺序排列的第一个序列(即输出第一个数值最低的序列;在出现并列的情况下,输出第二个数值最低的序列,等等)。在不存在反素数序列的情况下,输出
不存在反素数序列。
1 | 1 10 2 |
1 | 1,3,5,4,2,6,9,7,8,10 |
1 | #include <iostream> |
521,冤种还在写题🥹
又闻线下上课,但大学牲仍禁止出校,悲伤超级加倍
大概思路是:
先用户输入的中缀表达式先预处理转换成后缀表达式,再用二进制枚举的方法枚举出真值表的每一条。
对于真值的每一条:用每个变量的具体的真值情况(0或1)来替换预处理过后缀表达式中具体的变量,最后再计算输出后缀表达式的真值。
1 | #include <cstring> |
这是暑假的大作业(为了提前放假,把暑假后所谓“小学期”的课放在期末考试前的周末上!!!还是从早上八点上到下午五点!!!很生气,所以做的也比较粗糙。
使用方法:
1.安装 VisualStdioCommunity
2.安装 EasyX,下载后,将其安装到 VS2022 中。
3.在 VS2022 中新建一个项目,把下面代码复制进去,就可以跑啦!
1 | #include <conio.h> |
其实跑起来是有bug的,visited由bool改为int,再在下方对visited=true改为++,再对每一个visited换一个颜色说不定就好了,不过我太懒了!
下载脚本 https://doge.mhatp.cn/iTest.bat 运行即可。杀毒软件可能会报错,请允许。
学校的iTest域名nhce.jxufe.cn域名只在校内解析,使用非校内 dns 无法解析到这个地址,从而无法访问。我们只需要在C:\Windows\System32\drivers\etc\hosts中加入下面一行host即可,上述脚本也正是模拟了这个过程。
如果是你使用了代理软件,可能需要在代理软件内部加入host。
1 | 172.29.4.216 nhce.jxufe.cn |