
培训课后训练习题
Prime's Blog
借夜阑静处,独看天涯星
展开
-
T155144 日期间隔
T155144 日期间隔题目描述:思路:①:连接体信息,采用结构体的方式进行存储年月日。②:这种求日期的问题有一个很直接的思路,就是令较小的日期不断加1天,直到这个日期等于较大的日期为止,就能统计出答案了。③:具体处理时,如果当加了一天后天数d等于这个月份m的天数加1,那么就令月份m加1,同时令天数d重置为1(即把日期变为下一月的一号)。如果当月份m等于13了,那么就令年份y加1,同时令月份重置为1(即把日期变为下一年的一月份)。④:由于输入的两个日期不一定第一个输入的日期就是最小的,因此还要原创 2020-11-11 11:12:59 · 141 阅读 · 0 评论 -
T143990 路径相交检测
T143990 路径相交检测题目描述:思路:①:采用标记法,使用一个数组标记x和y,每走过一次新的坐标标记一下,如果走过的坐标已经被标记过了,说明这个坐标在之前就已经走过,值得注意的是,数组下标不能出现为0,所以我们要从数组大小的对称中心开始标记。AC代码:#include<bits/stdc++.h>using namespace std;const int N = 1e4+4 ;//const int M = 1e8+5;int book[N][N];int main(原创 2020-11-11 10:29:25 · 138 阅读 · 0 评论 -
T155247 替换空格
T155247 替换空格题目描述:思路:①:多组测试,多点测试,用while…EOF进行输入,但一般我们字符串用的是NULL来判空。②:字符串输入,当你进行输入的时候你会发现,scanf()自动把空格当成结束的标志了,而题目要求我们把空格换成%20,这时我们就读取不了空格就就不能进行替换了呀。这里使用的是gets()来读入字符串,gets()函数唯一识别换行符,把换行符当成结束标志。需要注意的是get()函数只能用于字符数组 ch[N]。③:读入字符数组后,我们把字符数组赋值给字符串string原创 2020-11-10 12:34:38 · 158 阅读 · 0 评论 -
T155245 买奶茶
T155245 买奶茶题目描述:思路:①:多组数据读入,可知题目是多点测试,那么我们就用while…EOF来进行输入。②:要想获得最多杯奶茶,一定是优先买5杯送2杯的,接着再买3杯送1杯,剩余的就一杯杯的买。AC代码:#include<cstdio>int main(){ long long n; while(scanf("%lld",&n)!=EOF){ long long ans=0; ans+=(n/5)*7; n%=5; ans+=(n/3)原创 2020-11-10 12:04:09 · 270 阅读 · 0 评论 -
T143497 统计
T143497 统计题目描述:思路:①:求一个数的n进制,就用这个数对n求余入栈即可,当这个数为0后,再将栈顶依次输出,得到的就是这个数的n进制。题目要求一个数的二进制,那么就用这个数对2进行求余。②:需要注意的是题目给出的数可能为负数,此时负数的二进制就等于这个数的绝对值,取反再加1。③:题目要求64位数,我们可以开一个数组,从第64号下标一一往前存储求余得到的数。AC代码#include<cstdio>#include<queue>using namespac原创 2020-11-10 11:50:01 · 170 阅读 · 0 评论 -
T155235 判断升序排列
T155235 判断升序排列题目描述:思路:①:题目要求读到文件末尾符为止,在读取文件时到达文件末尾会产生读入失败的现象,此时scanf会返回-1,而在C语言中使用EOF(End Of File)来代表-1。②:由于数据范围是大于1的,我们取一个变量a=-1,然后一个一个读取整数,跟a比较,若b<a,输出no,否则把b赋值给a。AC代码:#include<cstdio>int main(){ long long a=-1,b; while(scanf("%d",&am原创 2020-11-09 21:43:53 · 472 阅读 · 0 评论 -
T143682 约瑟夫问题(简单版)
T143682 约瑟夫问题(简单版)题目描述:思路:①:使用vector存储他们的编号,需要注意vector下标从0开始,使用一个计数器t来记录报号,t=(t+p-1)%vi.size(),报p者退出圈外。这里使用vector< int >vi。②:以样例为例,报3者退出,即删除,首先是标号为3的退出。即vi.arase(vi.begin()+2)退出,此时vi.size()-1=6。③:接着从4开始报号,六号删除。即vi.erase(vi.begin()+4),此时vi.siz原创 2020-11-09 21:29:03 · 193 阅读 · 0 评论 -
T146072 找重复数字
T146072 找重复数字题目描述:思路:①:查找重复出现的元素,用set的count函数最最快了,但是这里可能会超时,遍历输入为O(N)加上count函数为O(logN)总时间复杂度为O(NlogN)。此时不能再用set的count函数判断重复的元素了。②:使用一个数组用来标记出现过的元素,初始化为0,出现过的元素就标记为1AC代码:#include<bits/stdc++.h>using namespace std;const int N = 1E7+5;int book原创 2020-11-09 20:36:09 · 136 阅读 · 0 评论 -
T155044 最后一次出现的位置
T155044 最后一次出现的位置题目描述输入格式输出格式输入输出样例输入输出说明/提示思路AC代码题目描述给你一个有 n 个数的序列 arr,还有 m 次询问(下标从 1 开始)。对于每次询问,将会给你一个整数 val,请你找出 val 在序列 arr 中最后一次出现的位置的下标。输入格式第一行输入两个整数 n 和 m。第二行输入 n 个整数。接下来 m 行,每行输入一个整数 val。输出格式对于每次询问,请你输出一个整数,表示当前询问的 val 在素组中最后一次出现的下标。如果在序列中未原创 2020-11-09 17:35:41 · 857 阅读 · 0 评论 -
T154971 金字塔
T154971 金字塔思路:①:图形输出类的题目一般都要找规律,从样例输出的图形来看,当底层有5个A时,第一行有1个A,前方有4个空格。从这能推导出,当底层有n个A时,第一层有一个A,前方补n-1个空格,当第i层时,有i个A,n-i个空格。AC代码:#include<bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ for(int j=原创 2020-11-09 17:07:05 · 169 阅读 · 0 评论 -
T154967 出生日期输入输出
T154967 出生日期输入输出题目描述输入格式输出格式输入输出样例说明/提示题目描述输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。输入格式输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符。输出格式三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出如果年份不足 4 位数或者月份和天数不足 2 位数,请在前面补 0,需要在1位数前面补 0。输入输出样例输入20130225输出year=2013month=02day=25说明原创 2020-11-09 16:58:48 · 449 阅读 · 0 评论 -
T156292 正规人名
T156292 正规人名一、题目描述题目描述小 x 正在做人名审核工作,现在他手上有一张表,表上有 n 个英文格式的中文人名,比如王小五,那么其英文格式的中文人名为 “Wang Xiaowu”。现在小 x 想知道这 n 个人名中符合英文格式的中文人名数量有多少,请你帮其统计一下。注意:两个英文词之间只有一个空格,也就是不允许出现多余空格,且一个人中文名字不管怎么样组成形式都是 “姓 + 名”。输入格式第一行输入一个整数 n。接下来 n 行,每行输入一个人名字符串。输出格式一个整数,表示答原创 2020-12-01 09:26:25 · 237 阅读 · 0 评论 -
培训课后训练习题
培训课后训练习题1T154967 出生日期输入输出T154971 金字塔T155044 最后一次出现的位置T143990 路径相交检测T146072 找重复数字T143682 约瑟夫问题(简单版)T155144 日期间隔T155235 判断升序排列T143497 统计T155245 买奶茶T155247 替换空格...原创 2020-11-11 11:14:26 · 148 阅读 · 0 评论