【2021天梯赛训练-1】7-3 打印沙漏
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印
12345***** *** * ********
所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。
给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
输入格式:输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。
输出格式:首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。
输入样例:119 *
输出样例:123456***** *** * ********2
解题思路
先通过公式判断能输出几层
输出上半部分
输出下半部分
输出剩余的数量
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include<stdio.h>main(){ int i,N,su ...
【2021天梯赛训练-1】7-8 互评成绩
学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。
输入格式:输入第一行给出3个正整数N(3 < N ≤104 ,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学生数)。随后N行,每行给出一份作业得到的k个评审成绩(在区间[0, 100]内),其间以空格分隔。
输出格式:按非递减顺序输出最后得分最高的M个成绩,保留小数点后3位。分数间有1个空格,行首尾不得有多余空格。
输入样例:6 5 388 90 85 99 6067 60 80 76 7090 93 96 99 9978 65 77 70 7288 88 88 88 8855 55 55 55 55输出样例:87.667 88.000 96.000
123456789101112131415161718192021222324#include<bits/stdc++.h>using namespace std;in ...
【2021天梯赛训练-1】7-7 抢红包
没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。
输入格式:输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:
123456789KN1 P1 ⋯NK PK
其中K(0≤K≤20)是发出去的红包个数,Ni 是抢到红包的人的编号,Pi (>0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包,每人最多只能抢1次,不能重复抢。
输出格式:按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(以元为单位,输出小数点后2位)。每个人的信息占一行,两数字间有1个空格。如果收入金额有并列,则按抢到红包的个数递减输出;如果还有并列,则按个人编号递增输出。
输入样例:1234567891011103 2 22 10 58 8 1255 1 345 3 211 5 233 7 13 8 1011 7 88002 1 1000 2 10002 4 250 10 3206 5 11 9 22 8 3 ...
【2021天梯赛训练-1】7-6 连续因子
一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。
输入格式:输入在一行中给出一个正整数 N(1<N<231 )。
输出格式:首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。
输入样例:630
输出样例:3567
123456789101112131415161718192021222324252627282930//将[2,sqrt(n)]内的每一个数均作为一次起点,遍历所有情况#include<bits/stdc++.h>using namespace std;int len=0,start=2;//len记录长度,start记录开始位置int main(){ int n; scanf(&quo ...
【2021天梯赛训练-1】7-4 最长对称子串
对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。
输入格式:输入在一行中给出长度不超过1000的非空字符串。
输出格式:在一行中输出最长对称子串的长度。
输入样例:1Is PAT&TAP symmetric?
输出样例:111
解题思路考虑两种对称情况
奇对称
偶对称
123456789101112131415161718192021222324252627282930313233343536#include<iostream>using namespace std;int main(){ string s; getline(cin,s); int max=-1; for(int i=0;i<s.size();i++){ int count = -1; for(int a=0;i+a<s.size()& ...
【2021天梯赛训练-1】7-11 人以群分
社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。要求两类人群的规模尽可能接近,而他们的总活跃度差距尽可能拉开。
输入格式:输入第一行给出一个正整数N(2≤N≤105)。随后一行给出N个正整数,分别是每个人的活跃度,其间以空格分隔。题目保证这些数字以及它们的和都不会超过231。
输出格式:按下列格式输出:
123Outgoing #: N1Introverted #: N2Diff = N3
其中N1是外向型人的个数;N2是内向型人的个数;N3是两群人总活跃度之差的绝对值。
输入样例1:121023 8 10 99 46 2333 46 1 666 555
输出样例1:123Outgoing #: 5Introverted #: 5Diff = 3611
输入样例2:1213110 79 218 69 3721 100 29 135 2 6 13 5188 85
输出样例2:123Outgoing #: 7Introverted #: 6 ...
天梯赛经验分享-李振浩
天梯赛经验分享-李振浩
author: 李振浩
date: 2020-11-21 20:44:40注意事项
不要读题,直接看数据,找思路。
先特殊 在一般
事先配置好环境
dev / codeblocks 主题
freopen(“1.txt”, ‘r’, stdin)
不要使用<bits/stdc++.h> 变异很慢
尽量不要使用cin, cout … 用scanf printf
做题经验
pair<T,T>自带排序
dis数组 特殊判断
链表存储 h[N], tot, struct Edge{int to,nxt,w,….}
综合 :https://pintia.cn/problem-sets/994805046380707840/problems/994805051153825792
不要使用map 包括unordered_map 复杂度很玄学
csp 认证:http://118.190.20.162/view.page?gpid=T104
树形化处理dfs 找出口
+1 -1 注意细节
https://pinti ...
PAT乙级题目分享-19计科王伯成
author: 19计科王伯成
date: 2020-11-22 10:44:400、说一些话
开始时间:2020. 4. 9
完成时间:2020. 4. 27
PAT乙级题目集
总的来说,乙级题目刚开始做可能会感觉困难,不太好适应这种编程风格,慢慢的就习惯了,做题的思路也来得越来越快,好多题都是思路很简单但代码十分繁琐。学会C++的基础语法,不需要面向对象的部分,在学会STL几种容器的使用方法和它们的操作函数,刷乙级题的知识储备就足够了。(部分题涉及到了排序算法,但题中有解释)
Java做题也可以,也有许多便利的函数(方法),但Java效率太低,超时是一大问题
1001 害死人不偿命的(3n+1)猜想123456789101112131415161718#include <iostream>using namespace std;int main() { int step=0; int n; cin >> n; for(;n!=1;step++){ if(n%2==0){ ...
C++ 使用分享
C++ 使用分享
author: 樊萌萌
date: 2020-11-20 20:44:40一、常用集合
1.vector也称为单端数组,不同之处在于数组是静态空间,而vector可以动态扩展12345678910111.push_back(ele); 向尾部插入值2.pop_back(); 删除最后一个元素3.insert(,) 迭代器指向pos位置破损插入元素ele,例如 v1.insert(v1.begin(),100);头部(最前边)插入100,第一个参数是迭代器4.insert(,,) 迭代器指向位置pos插入count个元素elev例如 v1.insert(v1.begin(),2,100);在开头插入2个1005.erase(..) 删除迭代器指向的元素6.erase(strat,end) 删除迭代器从start到end之间的元素(左闭右开)7.clear() 删除容器中的所有元素//获取一些特殊位置的值获取第一个元素:v1.front(); 最后一个:v1.back();
相当于二维数组用法,容器嵌套1234567891011121314151617181 ...
天梯赛经验分享-尚梦川
天梯赛经验分享-尚梦川
author: 尚梦川
date: 2020-11-21 20:44:40