weixin_47511190的博客

私信 关注
lsy同学
码龄1年

尝试用HelloWorld改变世界

  • 8,766
    被访问量
  • 122
    原创文章
  • 92,004
    作者排名
  • 14
    粉丝数量
  • 毕业院校 郑州航空工业管理学院
  • 于 2020-05-01 加入CSDN
获得成就
  • 获得32次点赞
  • 内容获得2次评论
  • 获得13次收藏
荣誉勋章
TA的专栏
  • 笔记
    7篇
  • 笔记
    7篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

树种统计(天梯赛L2)

随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。输入格式:输入首先给出正整数N(≤10^5​),随后N行,每行给出卫星观测到的一棵树的种类名称。种类名称由不超过30个英文字母和空格组成(大小写不区分)。输出格式:按字典序递增输出各种树的种类名称及其所占总数的百分比,其间以空格分隔,保留小数点后4位。输入样例:29Red AlderAshAspenBasswoodAshBeechYellow Birch
原创
3阅读
0评论
0点赞
发布博客于 4 天前

玩转二叉树(天梯赛L2)

给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:71 2 3 4 5 6 74 1 3 2 6 5 7输出样例:4 6 1
原创
4阅读
0评论
0点赞
发布博客于 5 天前

树的遍历(天梯赛L2)

给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:4 1 6 3 5 7 2#include<bits/stdc++.h>us
原创
4阅读
0评论
0点赞
发布博客于 5 天前

点赞狂魔(天梯赛L2)

微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这种人就被称为“点赞狂魔”。他们点赞的标签非常分散,无法体现出明显的特性。本题就要求你写个程序,通过统计每个人点赞的不同标签的数量,找出前3名点赞狂魔。输入格式:输入在第一行给出一个正整数N(≤100),是待统计的用户数。随后N行,每行列出一位用户的点赞标签。格式为“Name K F​1​​ ⋯F​K​
原创
6阅读
0评论
0点赞
发布博客于 5 天前

人以群分(天梯赛L2)

社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。要求两类人群的规模尽可能接近,而他们的总活跃度差距尽可能拉开。输入格式:输入第一行给出一个正整数N(2≤N≤10^​5​​)。随后一行给出N个正整数,分别是每个人的活跃度,其间以空格分隔。题目保证这些数字以及它们的和都不会超过2 ^​31​​ 。输出格式:按下列格式输出:Outgoing #: N1Introverted #:
原创
3阅读
0评论
0点赞
发布博客于 6 天前

列车调度(天梯赛L2)

火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N (2 ≤ N ≤10​^5 ),下一行给出从1到N的整数序号的一个重排列。数字间以空格分隔。输出格式:在一行
原创
3阅读
0评论
0点赞
发布博客于 7 天前

最长公共子序列(动态规划)

#include<bits/stdc++.h>using namespace std;int maxLen[1000][1000]; // 记录公共子序列长度 int main(){ string s1,s2; cin>>s1>>s2; // 输入两个字符串 for(int i=0;i<=s1.length();i++) //初始化,s2长度为0时无公共子序列 maxLen[i][0]=0; for(int j=0;j<=s2.le
原创
1阅读
0评论
0点赞
发布博客于 7 天前

求最长上升子序列的长度(动态规划)

#include<bits/stdc++.h>using namespace std;// 时间复杂度o(n^2) int a[555];int maxLen[555];int main(){ int n; cin>>n; // 输入元素个数 for(int i=1;i<=n;i++) { cin>>a[i]; // 输入任意序列 maxLen[i]=1; // 以每个位置为终点的最长上升子序列长度初始化为1 } for
原创
15阅读
0评论
0点赞
发布博客于 9 天前

蛇形填数(蓝桥杯c/c++组)

【问题描述】如下图所示,小明用从1 开始的正整数“蛇形”填充无限大的矩阵。容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20 行第20 列的数是多少?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。答案:761#include<bits/stdc++.h>using namespace std;int main(){ int s,t=0,sum=0; s=2*20-1;
原创
41阅读
0评论
0点赞
发布博客于 9 天前

完全二叉树的权值(蓝桥杯)

给定一棵包含N 个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是A1, A2, AN,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。注:根的深度是1。输入第一行包含一个整数N。第二行包含N 个整数A1, A2, AN对于所有评测用例,1<=N<=100000, -100000<=Ai<=100000。输出输出一个整数代表答案。样例输入
原创
15阅读
0评论
0点赞
发布博客于 9 天前

迷宫(蓝桥杯c/c++组)

下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫,一共10 步。其中D、U、L、R 分别表示向下、向上、向左、向右走。对于下面这个更复杂的迷宫(30 行50 列),请找出一种通过迷宫的方式,其使用的步数最少,在步数最少的前提下,请找出字典序
原创
8阅读
0评论
0点赞
发布博客于 10 天前

sort函数的几种用法

#include<bits/stdc++.h>using namespace std;int cmp(int a,int b){ return a>b;}int main(){ int arr[]={3,2,5,1,6}; sort(arr,arr+5); // 默认从小到大排序 for(int i=0;i<5;i++) cout<<arr[i]<<" "; cout<<endl<<endl;
原创
7阅读
0评论
0点赞
发布博客于 27 天前

给出二叉树前序和后序遍历,求中序遍历总数

题目描述我们都很熟悉二叉树的前序、中序、后序遍历,在数据结构中常提出这样的问题:已知一棵二叉树的前序和中序遍历,求它的后序遍历,相应的,已知一棵二叉树的后序遍历和中序遍历序列你也能求出它的前序遍历。然而给定一棵二叉树的前序和后序遍历,你却不能确定其中序遍历序列,考虑如下图中的几棵二叉树:所有这些二叉树都有着相同的前序遍历和后序遍历,但中序遍历却不相同。输入格式输A数据共两行,第一行表示该二叉树的前序遍历结果s1,第二行表示该二叉树的后序遍历结果s2。输出格式输出可能的中序遍历序列的总数,结果不
原创
16阅读
0评论
0点赞
发布博客于 2 月前

互评成绩(天梯赛L2)

学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。输入格式:输入第一行给出3个正整数N(3 < N ≤10^​4​​ ,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学生数)。随后N行,每行给出一份作业得到的k个评审成绩(在区间[0, 100]内),其间以空格分隔。输出格式:按非递减顺序输出最后得分最高的M个成
原创
13阅读
0评论
0点赞
发布博客于 2 月前

排座位(天梯赛L2)

布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。输入格式:输入第一行给出3个正整数:N(≤100),即前来参宴的宾客总人数,则这些人从1到N编号;M为已知两两宾客之间的关系数;K为查询的条数。随后M行,每行给出一对宾客之间的关系,格式为:宾客1 宾客2 关系,其中关系为1表示是朋友,-1表示是死对头。注意两个人不可能既是朋友又是敌人。最后K行,每行给出一对需要查询的宾
原创
23阅读
0评论
0点赞
发布博客于 2 月前

旅游规划(天梯赛L2)

有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;D是目的地的城市编号。随后的M行中,每行给出一条高速公路的信息,分别是:城市1、城市2、高速公路长度、收费额,中
原创
22阅读
0评论
0点赞
发布博客于 2 月前

迪杰斯特拉算法求最短路径

#include<bits/stdc++.h>using namespace std;#define inf 999999int dis[555],mp[555][555],book[555]; // 到起点最短距离 地图 标记已经找到最短路径的顶点 int n,m,s,d; // 顶点数 边数 起点 终点 int x,y,len,w,u,minn; void dij(int s) // 迪杰斯特拉核心代码 { for(int i=0;i<n-1;i++)
原创
16阅读
0评论
0点赞
发布博客于 2 月前

Floyd算法求最短路径

#include<bits/stdc++.h>using namespace std;#define inf 99999int mp[555][555]; // 地图 int n,m,s,d; // 顶点数 边数 起点 终点 void floyd() // floyd算法核心语句 { for(int k=0;k<n;k++) for(int i=0;i<n;i++) for(int j=0;j<n;j++) { if(mp[i][j]>mp
原创
22阅读
0评论
0点赞
发布博客于 2 月前

Java关键字this

package hello2;public class Person7 { // 当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量是成员变量 // 在任意方法内,如果使用当前类的成员变量或成员方法可以在前面添加this,增加程序的阅读性 // this可以作为一个类中构造器相互调用的特殊形式 // 使用this必须放在构造器的首行 // 使用this调用本类中其他的构造器,保证至少有一个构造器是不用this的(实际上就是不能出现构造器自己调用自己
原创
10阅读
0评论
0点赞
发布博客于 2 月前

Java的修饰符和变量

package hello;public class Person1 { public String name="zhangsan";// 可以在类的内部使用,也可以在类的外部使用 private int age; // 可以在本类的方法中使用,不能在类的外部使用 // public private 修饰符可以用来修饰变量,指明一个变量是共有还是私有,私有的在类的外部不能靠对象.属性的方式调用 public void showAge() { System.out.println(a
原创
11阅读
0评论
0点赞
发布博客于 2 月前

Java类的创建及使用

创建Person对象:package hello;public class Person { // 属性 成员变量 类的成员变量可以先声明,不用初始化 String name; // String的默认值是null int age; // int 默认值是0 // 行为 方法 也叫函数 public void showName() { System.out.println("姓名:"+name); } public int getAge() { return age;
原创
16阅读
0评论
0点赞
发布博客于 2 月前

走方格(蓝桥杯c/c++B组)

问题描述在平面上有一些二维的点阵。这些点的编号就像二维数组的编号一样,从上到下依次为第 1 至第 n 行,从左到右依次为第 1 至第 m 列,每一个点可以用行号和列号来表示。现在有个人站在第 1 行第 1 列,要走到第 n 行第 m 列。只能向右或者向下走。注意,如果行号和列数都是偶数,不能走入这一格中。问有多少种方案。输入格式输入一行包含两个整数 n, m。输出格式输出一个整数,表示答案。样例输入3 4样例输出2样例输入6 6样例输出0测试数据对于所有评测用例,1 ≤ n ≤
原创
36阅读
0评论
0点赞
发布博客于 2 月前

蓝桥杯(c/c++ B组)

1、【问题描述】小蓝要为一条街的住户制作门牌号。 这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。 小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字 符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个 字符 0,2 个字符 1,1 个字符 7。 请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填
原创
23阅读
0评论
0点赞
发布博客于 2 月前

直接插入排序法(随机生成5000个整数进行排序)

#include<bits/stdc++.h>using namespace std;void InsertSort(vector<int>&v,int n){ int j; for(int i=2;i<=n;i++) { if(v[i]<v[i-1]) { v[0]=v[i]; v[i]=v[i-1]; for(j=i-2;v[j]>=v[0];j--) { v[j+1]=v[j];
原创
56阅读
0评论
0点赞
发布博客于 2 月前

合并果子(贪心算法,优先队列解决)

题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1 次合并之后, 就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为 1 ,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最
原创
22阅读
0评论
0点赞
发布博客于 2 月前

删数问题(贪心算法)

题目描述键盘输入一个高精度的正整数 NN(不超过 250250 位),去掉其中任意 kk 个数字后剩下的数字按原左右次序将组成一个新的非负整数。编程对给定的 NN 和 kk,寻找一种方案使得剩下的数字组成的新数最小。输入格式n(高精度的正整数 )。k(需要删除的数字个数 )。输出格式最后剩下的最小数。输入样例175438 4输出样例13#include<bits/stdc++.h>using namespace std;int main(){ string
原创
69阅读
0评论
0点赞
发布博客于 2 月前

A+B Problem(高精度)

题目描述高精度加法,相当于a+b problem,不用考虑负数.输入格式分两行输入。a,b≤10^500输出格式输出只有一行,代表a+b的值输入样例999999999999999999999999输出样例1999999999998#include<bits/stdc++.h>using namespace std;int main(){ string a,b,c; int tmp,t=0,maxn; cin>>a>>b; r
原创
77阅读
0评论
0点赞
发布博客于 2 月前

口罩发放(2020天梯赛)

为了抗击来势汹汹的 COVID19 新型冠状病毒,全国各地均启动了各项措施控制疫情发展,其中一个重要的环节是口罩的发放。某市出于给市民发放口罩的需要,推出了一款小程序让市民填写信息,方便工作的开展。小程序收集了各种信息,包括市民的姓名、身份证、身体情况、提交时间等,但因为数据量太大,需要根据一定规则进行筛选和处理,请你编写程序,按照给定规则输出口罩的寄送名单。输入格式:输入第一行是两个正整数 D 和 P(1≤D,P≤30),表示有 D 天的数据,市民两次获得口罩的时间至少需要间隔 P 天。接下来 D
原创
834阅读
0评论
3点赞
发布博客于 2 月前

简单计算器 (2020天梯赛)

本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器。如上图所示,计算器由两个堆栈组成,一个堆栈 S​1 存放数字,另一个堆栈 S​2 存放运算符。计算器的最下方有一个等号键,每次按下这个键,计算器就执行以下操作:从 S​1​​ 中弹出两个数字,顺序为 n​1 和 n​2;从 S​2 中弹出一个运算符 op;执行计算 n​2 op n​1​​ ;将得到的结果压回 S​1 。直到两个堆栈都为空时,计算结束,最后的结果将显示在屏幕上。输入格式:输入首先在第一行给出正整数 N(1&l.
原创
107阅读
0评论
0点赞
发布博客于 2 月前

乒乓球比赛(模拟算法)

题目描述华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):WWWWWWWWWWWWWWWWWWWWWWLW在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。而在21分制下,此时比赛结果是华华第一局21比0获胜,正在进行第二局,比分2比1。如果一局比赛刚开始,则此时比分为0比0。直到分差大于或者
原创
43阅读
0评论
0点赞
发布博客于 2 月前

折半查找(递归做法)

#include<bits/stdc++.h>using namespace std;int BinFind(vector<int>v,int x,int low,int high){ if(high<low) // 尾下标小于头下标,说明没找到,返回-1 return -1; int mid=(low+high)/2; // 取中点 if(v[mid]==x) // 如果找到,返回所在下标 return mid; else if
原创
74阅读
0评论
0点赞
发布博客于 3 月前

L1-8 刮刮彩票 (20分)(2020天梯赛)

“刮刮彩票”是一款网络游戏里面的一个小游戏。如图所示:每次游戏玩家会拿到一张彩票,上面会有 9 个数字,分别为数字 1 到数字 9,数字各不重复,并以 3×3 的“九宫格”形式排布在彩票上。在游戏开始时能看见一个位置上的数字,其他位置上的数字均不可见。你可以选择三个位置的数字刮开,这样玩家就能看见四个位置上的数字了。最后玩家再从 3 横、3 竖、2 斜共 8 个方向中挑选一个方向,方向上三个数字的和可根据下列表格进行兑奖,获得对应数额的金币。现在请你写出一个模拟程序,模拟玩家的游戏过程。输入格式
原创
163阅读
0评论
0点赞
发布博客于 3 月前

L1-5 胎压监测 (15分)(2020天梯赛)

小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。让我们把四个车轮 —— 左前轮、右前轮、右后轮、左后轮 —— 顺次编号为 1、2、3、4。本题就请你编写一个监测程序,随时监测四轮的胎压,并给出正确的报警信息。报警规则如下:如果所有轮胎的压力值与它们中的最大值误差在一个给定阈值内,并且都不低于系统设定的最低报警胎压,则说明情况正常,不报警;如果存在一个轮胎的压力值与它们中的最大值误差超过了阈值,或者低于系统设定的最低报警胎压,则不仅要报警,而且要给出可能漏
原创
434阅读
0评论
0点赞
发布博客于 3 月前

L1-7 前世档案 (20分)(2020天梯赛)

网络世界中时常会遇到这类滑稽的算命小程序,实现原理很简单,随便设计几个问题,根据玩家对每个问题的回答选择一条判断树中的路径(如下图所示),结论就是路径终点对应的那个结点。现在我们把结论从左到右顺序编号,编号从 1 开始。这里假设回答都是简单的“是”或“否”,又假设回答“是”对应向左的路径,回答“否”对应向右的路径。给定玩家的一系列回答,请你返回其得到的结论的编号。输入格式:输入第一行给出两个正整数:N(≤30)为玩家做一次测试要回答的问题数量;M(≤100)为玩家人数。随后 M 行,每行顺次给出.
原创
200阅读
0评论
0点赞
发布博客于 3 月前

L1-6 吃火锅 (15分)(2020天梯赛)

以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”,那就厉害了,我们的故事就开始了。本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有 chi1 huo3 guo1。输入格式:输入每行给出一句不超过 80 个字符的、以回车结尾的朋友信息,信息为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。当读到某一行只有一个英文句点 . 时,输入结束,此行不算在朋友信息里。输出格式:首先在一行中输出朋友信息的总条数。然后对朋友的每一行信息,检查其中是否包含.
原创
650阅读
0评论
0点赞
发布博客于 3 月前

L1-3 洛希极限 (10分)(2020天梯赛)

科幻电影《流浪地球》中一个重要的情节是地球距离木星太近时,大气开始被木星吸走,而随着不断接近地木“刚体洛希极限”,地球面临被彻底撕碎的危险。但实际上,这个计算是错误的。洛希极限(Roche limit)是一个天体自身的引力与第二个天体造成的潮汐力相等时的距离。当两个天体的距离少于洛希极限,天体就会倾向碎散,继而成为第二个天体的环。它以首位计算这个极限的人爱德华·洛希命名。(摘自百度百科)大天体密度与小天体的密度的比值开 3 次方后,再乘以大天体的半径以及一个倍数(流体对应的倍数是 2.455,刚体对应
原创
430阅读
0评论
1点赞
发布博客于 3 月前

构造无向图的邻接矩阵

#include<bits/stdc++.h>using namespace std;#define Max_size 100struct node{ char vexs[Max_size]; // 顶点数组 int arc[Max_size][Max_size]; // 邻接矩阵 int numvex,numedge; // 定点数和边数 };void CreatMGraph(node *Gp) // 构建邻接矩阵 { cin>>
原创
85阅读
0评论
0点赞
发布博客于 3 月前

扫雷游戏(模拟算法)

题目描述扫雷游戏是一款十分经典的单机小游戏。在nn行mm列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。输入格式第一行是用一个空格隔开的两个整数n和m,分别表
原创
39阅读
0评论
0点赞
发布博客于 3 月前

数字反转(升级版)

题目背景给定一个数,请将该数各个位上数字反转得到一个新数。这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数。整数反转是将所有数位对调;小数反转是把整数部分的数反转,再将小数部分的数反转,不交换整数部分与小数部分;分数反转是把分母的数反转,再把分子的数反转,不交换分子与分母;百分数的分子一定是整数,百分数只改变数字部分。整数新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零;小数新数的末尾不为0(除非小数部分除了0没有别的数,那么只保
原创
35阅读
0评论
0点赞
发布博客于 3 月前

数的计算(dfs和递推)

题目描述我们要求找出具有下列性质数的个数(包含输入的正整数 n)。先输入一个正整数 n(n≤1000),然后对此正整数按照如下方法进行处理:不作任何处理;在它的左边加上一个正整数,但该正整数不能超过原数的一半;加上数后,继续按此规则进行处理,直到不能再加正整数为止。输入格式1个正整数 n(n≤1000)输出格式1个整数,表示具有该性质数的个数。输入样例6输出样例6说明/提示满足条件的数为6,16,26,126,36,136这道题如果用dfs的话会和斐波那契数列一样时间复杂
原创
32阅读
0评论
0点赞
发布博客于 3 月前

栈(递推算法)

题目背景栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。栈有两种最重要的操作,即 pop(从栈顶弹出一个元素)和 push(将一个元素进栈)。栈的重要性不言自明,任何一门数据结构的课程都会介绍栈。宁宁同学在复习栈的基本概念时,想到了一个书上没有讲过的问题,而他自己无法给出答案,所以需要你的帮忙。题目描述:宁宁考虑的是这样一个问题:一个操作数序列,1,2,…,n(图示为 1 到 3 的情况),栈 A 的深度大于 n。现在可以进行两种操作,将一个数,从操作数序列的
原创
20阅读
0评论
0点赞
发布博客于 3 月前

连续因子

一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数 N(1<N<2^31)。输出格式:首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。输入样例:630输出样例:35*6*7
原创
11阅读
0评论
0点赞
发布博客于 3 月前

列车调度

火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N (2 ≤ N ≤10^5​​ ),下一行给出从1到N的整数序号的一个重排列。数字间以空格分隔。输出格式:在一
原创
16阅读
0评论
0点赞
发布博客于 3 月前

马的遍历(广度优先搜索)

题目描述有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步输入格式一行四个数据,棋盘的大小和马的坐标输出格式一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1)输入 3 3 1 1输出 0 3 2 3 -1 1 2 1 4 这道题如果用深度优先搜索(dfs)会超时的,因为每次你遍历的点不一定是最少步骤数,所以每个点你需要重复判断
原创
40阅读
0评论
0点赞
发布博客于 3 月前

八皇后 Checker Challenge(dfs)

题目描述一个如下的 6×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列 2 4 6 1 3 5 来描述,第 ii 个数字表示在第 ii 行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是棋子放置的一个解。请编一个程序找出所有棋子放置的解。并把它们以上面的序列方法输出,解按字典顺序排列。请输出前 3 个解。最后一行是解的总个数。输入格式一行一个正
原创
11阅读
0评论
0点赞
发布博客于 3 月前

单词覆盖还原

题目描述一个长度为 l(3≤l≤255) 的字符串中被反复贴有 boy 和 girl 两单词,后贴上的可能覆盖已贴上的单词(没有被覆盖的用句点表示),最终每个单词至少有一个字符没有被覆盖。问贴有几个 boy 几个 girl?输入格式一行被被反复贴有boy和girl两单词的字符串。输出格式两行,两个整数。第一行为boy的个数,第二行为girl的个数。输入..boyogirlyy..bogirl输出52#include<bits/stdc++.h>using namespa
原创
49阅读
0评论
0点赞
发布博客于 3 月前

honoka的键盘

题目背景honoka 有一个只有两个键的键盘。题目描述一天,她打出了一个只有这两个字符的字符串。当这个字符串里含有 VK 这个字符串的时候,honoka 就特别喜欢这个字符串。所以,她想改变至多一个字符(或者不做任何改变)来最大化这个字符串内 VK 出现的次数。给出原来的字符串,请计算她最多能使这个字符串内出现多少次 VK(只有当 V 和 K 正好相邻时,我们认为出现了 VK。)输入格式第一行给出一个数字 nn,代表字符串的长度。第二行给出一个字符串 ss。输出格式第一行输出一个整数代表所求
原创
11阅读
0评论
0点赞
发布博客于 3 月前

统计单词数

题目描述一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1 ),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2 )。输入格式共2行。第1行为一个字符串,其中只含字母,表示给定单词;第
原创
87阅读
0评论
0点赞
发布博客于 3 月前

口算练习题(模拟算法)

题目描述王老师正在教简单算术运算。细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习。 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率。王老师希望尽量减少输入的工作量,比如5+8的算式最好只要输入5和8,输出的结果要尽量详细以方便后期排版的使用,比如对于上述输入进行处理后输出 5+8=13 以及该算式的总长度6。王老师把这个光荣的任务交给你,请你帮他编程实现以上功能。输入格式第一行为数值i接着的i行为需要输入的算式,每行可能有三个数据或两个数据。若该行为三个数据
原创
46阅读
0评论
0点赞
发布博客于 3 月前

删除重复字符

本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。输入格式:输入是一个以回车结束的非空字符串(少于80个字符)。输出格式:输出去重排序后的结果字符串。输入样例:ad2f3adjfeainzzzv输出样例:23adefijnvz#include<bits/stdc++.h>using namespace std;int main(){ string a; getline(cin,a); for(int i=0;i<a
原创
294阅读
0评论
0点赞
发布博客于 3 月前

小书童——凯撒密码

题目背景某蒟蒻迷上了“小书童”,有一天登陆时忘记密码了(他没绑定邮箱or手机),于是便把问题抛给了神犇你。题目描述蒟蒻虽然忘记密码,但他还记得密码是由一个字符串组成。密码是由原文字符串(由不超过 50 个小写字母组成)中每个字母向后移动 nn 位形成的。z 的下一个字母是 a,如此循环。他现在找到了移动前的原文字符串及 nn,请你求出密码。输入格式第一行:n。第二行:未移动前的一串字母输出格式一行,是此蒟蒻的密码输入1qwe输出 rxf#include<bits/stdc
原创
51阅读
0评论
0点赞
发布博客于 3 月前

从1到n的全排列(深度优先搜索)

不撞南墙不回头#include<bits/stdc++.h>using namespace std;int n,book[50],a[50];void dfs(int step){ if(step==n+1) { for(int i=1;i<=n;i++) cout<<a[i]; cout<<endl; return ; } for(int j=1;j<=n;j++) { if(book[j]==0) {
原创
169阅读
0评论
0点赞
发布博客于 3 月前

排队接水(贪心算法)

题目描述有 n 个人在一个水龙头前排队接水,假如每个人接水的时间为 Ti,请编程找出这 n 个人排队的一种顺序,使得 n 个人的平均等待时间最小。输入格式第一行为一个整数 n。第二行 n 个整数,第 i 个整数 Ti 表示第i个人的等待时间 Ti。输出格式输出文件有两行,第一行为一种平均时间最短的排队顺序;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。输入 10 56 12 1 99 1000 234 33 55 99 812输出3 2 7 8 1 4 9 6
原创
130阅读
0评论
0点赞
发布博客于 3 月前

月饼(贪心算法)

月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿元)。输入格式
原创
32阅读
0评论
0点赞
发布博客于 3 月前

部分背包问题(贪心算法)

#include<bits/stdc++.h>using namespace std;struct node{ int w; int money; };int main(){ int n,m; double sum=0; cin>>n>>m; node a[n]; for(int i=0;i<n;i++) { cin>>a[i].w>>a[i].money; } for(int i=0;i<.
原创
64阅读
0评论
0点赞
发布博客于 3 月前

Ignatius and the Princess IV

题目描述“OK, you are not too bad, em… But you can never pass the next test.” feng5166 says.“I will tell you an odd number N, and then N integers. There will be a special integer among them, you have to tell me which integer is the special one after I tell yo
原创
14阅读
0评论
0点赞
发布博客于 3 月前

Let the Balloon Rise

题目描述Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges’ favorite time is guessing the most popular problem. When the contest is over, they will count the balloons of each color and find the result.
原创
9阅读
0评论
0点赞
发布博客于 3 月前

Moving Tables(贪心算法)

题目描述著名的ACM公司租用了一幢楼的一层,其形状如下。整个楼层在走廊的北面和南面各有300个房间。最近公司制定了一个改变布局的方案,包括在不同房间之间移动许多桌子。由于走廊狭窄,而且桌子都很大,只有一张桌子可以穿过走廊。为了提高工作效率,经理制定了如下方案:把一张桌子从一个房间搬到另一个房间可以在5分钟内完成。当移动一张桌子从I房间搬到J房间时,房间I前面和房间J前面的走廊部分被使用了。因此,在每5分钟,在不共用走廊的情况下,不同的移动方案可以同时进行。为了说明问题,经理举例说明了可能发生的情况和不可
原创
80阅读
0评论
0点赞
发布博客于 3 月前

今年暑假不AC(贪心算法)

题目描述“今年暑假不AC?”“是的。”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%…”确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?(目标是能看尽量多的完整节目)输入输入数据包含多
原创
91阅读
0评论
0点赞
发布博客于 3 月前

八皇后问题(递归做法和回溯做法)

八皇后问题回溯做法要比递归做法简单一些,但这个问题能很好地训练我们的递归算法。下面把两种方法的代码列出来。递归做法:#include<bits/stdc++.h>using namespace std;int cnt=0; // 总共多少种情况 int notdanger(int r,int c,int chess[][8]) // 穿进去需要判断点的坐标和chess2 { // 判断该列是否安全 for(int i=0;i<8;i++) { if(ches
原创
21阅读
0评论
0点赞
发布博客于 3 月前

汉诺塔问题(递归)

#include<bits/stdc++.h>using namespace std;// 将n个盘子借助y移动到z void move(int n,char x,char y,char z){ if(n==1) { cout<<x<<"-->"<<z<<endl; } else { move(n-1,x,z,y); //将n-1个盘子从x借助z移动到y上 cout<<x<<"--&
原创
18阅读
0评论
0点赞
发布博客于 3 月前

线索二叉树(构建并输出)

#include<bits/stdc++.h>using namespace std;typedef char ElemType;typedef struct BiThrnode{ char data; BiThrnode *lchild,*rchild; int ltag; int rtag; // 1为线索,0为左孩子或右孩子 } BiThrnode, *BiThrTree;//全局变量,指向刚刚访问过的结点 BiThrTree pre; // 创建一棵二叉
原创
32阅读
0评论
0点赞
发布博客于 3 月前

二分法求多项式单根

二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f®=0。二分法的步骤为:检查区间长度,如果小于给定阈值,则停止,输出区间中点(a+b)/2;否则如果f(a)f(b)<0,则计算中点的值f((a+b)/2);如果f((a+b)/2)正好为0,则(a+b)/2就是要求的根;否则如果f((a+b)/2)与f(a)同号,则说明根在区间[(a+b)/2,b],令a=(a+b)/2,重复循环;如果f((
原创
11阅读
0评论
0点赞
发布博客于 3 月前

黑洞数

黑洞数也称为陷阱数,又称“Kaprekar问题”,是一类具有奇特转换特性的数。任何一个各位数字不全相同的三位数,经有限次“重排求差”操作,总会得到495。最后所得的495即为三位黑洞数。所谓“重排求差”操作即组成该数的数字重排后的最大数减去重排后的最小数。(6174为四位黑洞数。)例如,对三位数207:第1次重排求差得:720 - 27 = 693;第2次重排求差得:963 - 369 = 594;第3次重排求差得:954 - 459 = 495;以后会停留在495这一黑洞数。如果三位数的3个数
原创
52阅读
0评论
0点赞
发布博客于 3 月前

字符串排序

本题要求编写程序,读入5个字符串,按由小到大的顺序输出。输入格式:输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。输出格式:按照以下格式输出排序后的结果:After sorted:每行一个字符串输入样例:red yellow blue green white输出样例:After sorted:bluegreenredwhiteyellow#include<stdio.h>#include<string.h
原创
12阅读
0评论
0点赞
发布博客于 3 月前

高空坠球

皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?输入格式:输入在一行中给出两个非负整数,分别是皮球的初始高度和n,均在长整型范围内。输出格式:在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度,其间以一个空格分隔,保留一位小数。题目保证计算结果不超过双精度范围。输入样例:33 5输出样例:94.9 1.0#include<stdio.h>int ma
原创
36阅读
0评论
0点赞
发布博客于 3 月前

求一批整数中出现最多的个位数字

给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。输入格式:输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。输出格式:在一行中按格式“M: n1 n2 …”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。输入样例:31234 2345 3456输出样例
原创
65阅读
0评论
0点赞
发布博客于 3 月前

找鞍点

一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。输入格式:输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。输出格式:输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。输入样例1:41 7 4 14 8 3 61 6 1 20 7 8 9输出样例1:2 1输入样例2:21 74
原创
103阅读
0评论
0点赞
发布博客于 3 月前

简单计算器

模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。输入样例:1+2*10-10/2=输出样例:10#include<stdio.h>int func(char *a,int *c){ int
原创
586阅读
0评论
1点赞
发布博客于 3 月前

抢红包

没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。输入格式:输入第一行给出一个正整数N(≤10^​4​​ ),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:K N​1​​ P​1 ⋯N​K​​ P​K其中K(0≤K≤20)是发出去的红包个数,N​i​​ 是抢到红包的人的编号,P​i​​ (>0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包,每人最多只能抢1次,不能重复抢
原创
38阅读
0评论
0点赞
发布博客于 3 月前

前序建立并前序遍历二叉树

#include<bits/stdc++.h>using namespace std;typedef char ElemType; typedef struct BiTnode{ char data; BiTnode *lchild,*rchild;}BiTnode,*BiTree;void CreatBiTree(BiTree *T){ char c; cin>>c; if(c==' ') { *T=NULL; } else { *T=
原创
25阅读
0评论
0点赞
发布博客于 3 月前

一个永远都不会结束的算法,你还要他干啥? 一个永远追不到的女孩,你还追她干啥哩?

 
发布Blink于 3 月前

手机

一般的手机的键盘是这样的:要按出英文字母就必须要按数字键多下。例如要按出 x 就得按 9 两下,第一下会出 w,而第二下会把 w 变成 x。0 键按一下会出一个空格。你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。输入格式一行句子,只包含英文小写字母和空格,且不超过 200 个字符。输出格式一行一个整数,表示按键盘的总次数。输入样例:i have a dream输出样例:23#include <bits/stdc++.h&g
原创
14阅读
0评论
0点赞
发布博客于 3 月前

到底是不是太胖了

据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。输入格式:输入第一行给出一个正整数N(≤ 20)。随后N行,每行给出两个整数,分别是一个人的身高H(120 < H < 200;单位:厘米)和真实体重W(50 < W ≤ 300;单位:市斤),其间以空格分隔
原创
12阅读
0评论
0点赞
发布博客于 3 月前

寻找大富翁

胡润研究院的调查显示,截至2017年底,中国个人资产超过1亿元的高净值人群达15万人。假设给出N个人的个人资产值,请快速找出资产排前M位的大富翁。输入格式:输入首先给出两个正整数N(≤10^​6 )和M(≤10),其中N为总人数,M为需要找出的大富翁数;接下来一行给出N个人的个人资产值,以百万元为单位,为不超过长整型范围的整数。数字间以空格分隔。输出格式:在一行内按非递增顺序输出资产排前M位的大富翁的个人资产值。数字间以空格分隔,但结尾不得有多余空格。输入样例:8 38 12 7 3 20 9
原创
16阅读
0评论
0点赞
发布博客于 3 月前

倒数第N个字符串

给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增。例如当 L 为 3 时,序列为 { aaa, aab, aac, …, aaz, aba, abb, …, abz, …, zzz }。这个序列的倒数第27个字符串就是 zyz。对于任意给定的 L,本题要求你给出对应序列倒数第 N 个字符串。输入格式:输入在一行中给出两个正整数 L(2 ≤ L ≤ 6)和 N(≤10​^5​​ )。输出格式:在一行中输出对应序列倒数第
原创
6阅读
0评论
0点赞
发布博客于 3 月前

整除光棍

这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比如,程序
原创
9阅读
0评论
0点赞
发布博客于 3 月前

稳赢

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。输入格式:输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。输出格式:对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。输入样例:2ChuiZi
原创
8阅读
0评论
0点赞
发布博客于 3 月前

寻找250

对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。输入格式:输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。输出格式:在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。输入样例:888 666 123 -233 250 13 250 -222输出样例:5#include<bits/stdc++.h>using namespace.
原创
15阅读
0评论
0点赞
发布博客于 3 月前

把一个字符串中的所有字符按从小到大排序

把一个字符串中的所有字符按从小到大排序。输入格式:在一行中输入长度小于20的字符串。在字符串中不要出现换行符,制表符。输出格式:直接输出排序后的字符串。输入样例:asdfg输出样例:adfgs#include<bits/stdc++.h>using namespace std;int main(){ string a; getline(cin,a); sort(a.begin(),a.end()); for(int i=0;i<a.length();i+
原创
595阅读
0评论
1点赞
发布博客于 3 月前

互评成绩

学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。输入格式:输入第一行给出3个正整数N(3 < N ≤10^​4,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学生数)。随后N行,每行给出一份作业得到的k个评审成绩(在区间[0, 100]内),其间以空格分隔。输出格式:按非递减顺序输出最后得分最高的M个成绩,保
原创
12阅读
0评论
0点赞
发布博客于 3 月前

准备打天梯赛了,关于打天梯赛我需要主要学习什么算法知识呢?

 
发布Blink于 3 月前

Left-pad

根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把javascript里面的React/Babel干瘫痪了。这是个什么样的模块?就是在字符串前填充一些东西到一定的长度。例如用去填充字符串GPLT,使之长度为10,调用left-pad的结果就应该是*****GPLT。Node社区曾经对left-pad紧急发布了一个替代,被严重吐槽。下面就请你来实现一下这个模块。输入格式:输入在第一行给出
原创
15阅读
0评论
0点赞
发布博客于 3 月前

出租

下面是新浪微博上曾经很火的一张图:一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。本题要求你编写一个程序,为任何一个电话号码生成这段代码 —— 事实上,只要生成最前面两行就可以了,后面内容是不变的。输入样例:18013820100输出样例:int[] ar
原创
33阅读
0评论
0点赞
发布博客于 3 月前

输出GPLT

给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT…这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。输出格式:在一行中按题目要求输出排序后的字符串。题目保证输出非空。输入样例:pcTclnGloRgLrtLhgljkLhGFauPewSKgt输出样
原创
18阅读
0评论
1点赞
发布博客于 3 月前

帅到没朋友

当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。输入格式:输入第一行给出一个正整数N(≤100),是已知朋友圈的个数;随后N行,每行首先给出一个正整数K(≤1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;之后给出一个正整数M(≤10000),为待查询的人数;随后一行中列出M个待查询的ID,以空格分隔。注意:没有朋友的人可以是根本没安装“朋友圈
原创
16阅读
0评论
0点赞
发布博客于 3 月前

输出全排列(深度优先搜索)

请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。输入格式:输入给出正整数n(<10)。输出格式:输出1到n的全排列。每种排列占一行,数字间无空格。排列的输出顺序为字典序,即序列a​1​​ ,a​2,⋯,a​n​​排在序列b1,b​2,⋯,b​n之前,如果存在k使得a​1=b1 ,⋯,a​k=b​k并且 a​k+1<b​k+1。输入样例:3输出样例:123132213231312321#inclu
原创
26阅读
0评论
0点赞
发布博客于 3 月前

数列求和-加强版

给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。输入格式:输入数字A与非负整数N。输出格式:输出其N项数列之和S的值。输入样例:1 3输出样例:123#include<bits/stdc++.h>using namespace std;int main(){ int a,n,p[100002]={0},m=0,t,j=0; cin>
原创
17阅读
0评论
0点赞
发布博客于 3 月前

切分表达式——写个tokenizer吧

[先说点出题背景]这个题是为低年级同学、学C语言的同学准备的,因为,对这部分同学,这个题目编写起来略有一点复杂。如果是高年级、学过了正则表达式(Regular Expression)的同学或者学过了Java等OO语言的同学做这个题,应当发现这题比较简单吧。哦,对了,什么是tokenizer?请自行查询解决。反正在此处不应翻译成“令牌解析器”。[正题]四则运算表达式由运算数(必定包含数字,可能包含正或负符号、小数点)、运算符(包括+、-、*、/)以及小括号((和))组成,每个运算数、运算符和括号都是一个
原创
8阅读
0评论
0点赞
发布博客于 3 月前

有理数均值

本题要求编写程序,计算N个有理数的平均值。输入格式:输入第一行给出正整数N(≤100);第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。输出格式:在一行中按照a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。输入样例1:41/2 1/6 3/6 -5/10输出样例1:1/6输入样例2:24/3 2/3输出样例2:1#include<
原创
16阅读
0评论
0点赞
发布博客于 3 月前

打印沙漏

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。输入格式:输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。输出格式:首先打印出由给定符号组成的最大的沙漏形状,
原创
21阅读
0评论
0点赞
发布博客于 3 月前

简易连连看

本题要求实现一个简易连连看游戏模拟程序。给定一个2N×2N的方阵网格游戏盘面,每个格子中放置一些符号。这些符号一定是成对出现的,同一个符号可能不止一对。程序读入玩家给出的一对位置(x​1​​ ,y​1​​ )、(x​2 ,y​2​​ ),判断这两个位置上的符号是否匹配。如果匹配成功,则将两个符号消为“*”并输出消去后的盘面;否则输出“Uh-oh”。若匹配错误达到3次,则输出“Game Over”并结束游戏。或者当全部符号匹配成功,则输出“Congratulations!”,然后结束游戏。输入格式:输入
原创
20阅读
0评论
0点赞
发布博客于 3 月前

最长对称子串(用各个字符确定对称轴进行判断)

对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。输入格式:输入在一行中给出长度不超过1000的非空字符串。输出格式:在一行中输出最长对称子串的长度。输入样例:Is PAT&TAP symmetric?输出样例:11#include<bits/stdc++.h>using namespace std;int main(){ stri
原创
10阅读
0评论
0点赞
发布博客于 3 月前

币值转换

输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。输入格式:输入在一行中给出一个不超过9位的非负整数。输出格式:在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。输入样例1:813227345输出样例1:iYbQdBcScWhQdBe
原创
14阅读
0评论
0点赞
发布博客于 3 月前

素因子分解

给定某个正整数 N,求其素因子分解结果,即给出其因式分解表达式 N=p​1​k1*p​2​k​2​​⋯p​m^​k​m,其中pi为素因子并要求由小到大输出,指数ki为pi的个数;当ki为1即因子pi只有一个时不输出ki。输入格式:输入long int范围内的正整数 N。输出格式:按给定格式输出N的素因式分解表达式,即 N=p1^k1 *p2k2*…*pmkm,其中pi为素因子并要求由小到大输出,指数ki为pi的个数;当ki为1即因子pi只有一个时不输出ki。输入样例:1323输出样例:132
原创
166阅读
0评论
0点赞
发布博客于 3 月前

统计单词数量

请编写程序,输入一段文字(以回车结束),统计其中单词的数量并输出。注:这里单词被定义为一串连续的字母。输入格式:一段文字输出格式:单词数量输入样例1:My name's Catherine Flower.输出样例1:5输入样例2:I = U / R输出样例2:3#include<bits/stdc++.h>using namespace std;int main(){ int flag=1,cnt=0; char ch; while((ch=ge
原创
126阅读
0评论
0点赞
发布博客于 3 月前

敲笨钟

微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。为了增加敲钟的趣味性,还会糟改几句古诗词。其糟改的方法为:去网上搜寻压“ong”韵的古诗词,把句尾的三个字换成“敲笨钟”。例如唐代诗人李贺有名句曰:“寻章摘句老雕虫,晓月当帘挂玉弓”,其中“虫”(chong)和“弓”(gong)都压了“ong”韵。于是这句诗就被糟改为“寻章摘句老雕虫,晓月当帘敲笨钟”。现在给你一大堆古诗词句,要求你写个程序自动将压“ong”韵的句子糟改成“敲笨钟”。输入格式:输入首先在第一行给出一个不超过 20 的
原创
20阅读
0评论
0点赞
发布博客于 3 月前

古风排版

中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。输入样例:4This is a test case输出样例:asa Tst ihe tsi ce s#include<bits/stdc++.h>using namespac
原创
14阅读
0评论
0点赞
发布博客于 3 月前

福到了

“福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @ 或者为空格。而倒过来的汉字所用的字符由裁判指定。输入格式:输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N 行,每行给出 N 个字符,或者为 @ 或者为空格。输出格式:输出倒置的网格,如样例所示。但是,如果这个字正过来倒过去是一样的,就先输出bu yong
原创
12阅读
0评论
1点赞
发布博客于 3 月前

层次遍历二叉树(队列解决)

#include<bits/stdc++.h>using namespace std;struct Treenode{ int data; Treenode *lchild; Treenode *rchild; };void PrintTree(Treenode *tmp) // 按层次遍历二叉树的函数 { queue<Treenode*>q; q.push(tmp); while(!q.empty()) { Tre
原创
42阅读
1评论
2点赞
发布博客于 3 月前