2019天梯赛第四次训练赛大桃桃

算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。

输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过20个字符。

在一行中输出转换后的后缀表达式,要求不同对象(运算数、运算符号)之间以空格分隔,但结尾不得有多余空格。

2+3*(7-4)+8/4输出样例:2374-*+84/+这种特判题还是不太熟练,回去反省,需要考虑+2,-3,1.5

86070809030401020输出样例:6017028039043014051012025按题意模拟

1#include2usingnamespacestd;34intmain()5{6intn;7cin>>n;8inta[1005],s[1005];9for(inti=1;i<=n;i++)cin>>a[i],s[i]=0;10intgo[1005],p=0;11for(inti=1;i<=n;i++)12{13for(intj=1;j<=n;j++)14{15if(s[j]+a[i]<=100)16{17p=max(p,j);18go[i]=j;19s[j]+=a[i];20break;21}22}23}24for(inti=1;i<=n;i++)25printf("%d%d\n",a[i],go[i]);26printf("%d\n",p);27return0;28}7-3公路村村通(30分)现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。

输入数据包括城镇数目正整数N(<=1000)和候选道路数目M(<=3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。

输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出1,表示需要建设更多公路。

6151251331471541622342462522663463513614510468563输出样例:12最小生成树模板

输入首先给出正整数N(<=104),表示要将木头锯成N块。第二行给出N个正整数(<=50),表示每段木块的长度。N个正整数(≤50),表示每段木块的长度。

输出一个整数,即将木头锯成N块的最少花费。

845121311输出样例:49每次取最小两个合并

输入的第一行是正整数N(<=105)。随后N行,每行给出一句指令,为以下3种之一:

PushkeyPopPeekMedian

其中key是不超过105的正整数;Push表示“入栈”;Pop表示“出栈”;PeekMedian表示“取中值”。的正整数Push表示“入栈”;Pop表示“出栈”;PeekMedian表示“取中

对每个Push操作,将key插入堆栈,无需输出;对每个Pop或PeekMedian操作,在一行中输出相应的返回值。若操作非法,则对应输出Invalid。

17PopPeekMedianPush3PeekMedianPush2PeekMedianPush1PeekMedianPopPopPush5Push4PeekMedianPopPopPopPop输出样例:InvalidInvalid322124453Invalidpop和push操作直接用栈操作

由于N很大,中位数如果用数组移位插入删除会超时O(n),可以考虑二分[0,100000]然后用树状数组判断前面有几个比他小O(lognlogn)

总复杂度O(nlognlogn),有人说O(n^2)可以过,orz

输入在第一行给出一个正整数N(<=1000),为社交网络平台注册的所有用户的人数。于是这些人从1到N编号。随后N行,每行按以下格式给出一个人的兴趣爱好列表:

Ki:hi[1]hi[2]...hi[Ki]

其中ki>0是兴趣爱好的个数,hi[j]是第j个兴趣爱好的编号,为区间[1,1000]内的整数。

首先在一行中输出不同的社交集群的个数。随后第二行按非增序输出每个集群中的人数。数字间以一个空格分隔,行末不得有多余空格。

83:27101:42:531:41:31:44:68151:4输出样例:3431并查集,1-1000是兴趣的编号,1001-1000+n是人的编号

然后就是并查集模板了

1#include2usingnamespacestd;34constintN=2005;5intf[N];6intfind(intx)7{8returnf[x]==xx:f[x]=find(f[x]);9}10intmain()11{12intn,k,like;13cin>>n;14for(inti=1;i<=2000;i++)f[i]=i;15for(inti=1;i<=n;i++)16{17scanf("%d:",&k);18for(intj=1;j<=k;j++)19{20scanf("%d",&like);21f[find(like)]=f[find(i+1000)];22}23}24boolvis[2005]={0};25intcnt=0;26intsum[2005]={0};27for(inti=1001;i<=1000+n;i++)28{29if(vis[i])continue;30intfa=f[find(i)];31for(intj=i;j<=1000+n;j++)32{33if(fa==f[find(j)])34{35sum[cnt]++;36vis[j]=true;37}38}39cnt++;40}41printf("%d\n",cnt);42sort(sum,sum+cnt);43for(inti=cnt-1;i>=0;i--)44printf("%d%c",sum[i],i==0'\n':'');45return0;46}7-7抓老鼠啊~亏了还是赚了?(20分)某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X)。捕鼠夹可重复利用,不计成本,奶酪每块3元。聪明的老鼠呢?它们每天可能会派出一只老鼠到墙角,看看墙角有啥:

现在给你连续几天的操作序列,且已知第一天肯定会派出老鼠,请判断老鼠每天的状态,并计算盈利。

输入在一行中给出连续的由C或T或X组成的不超过70个字符的字符串,以$结束。字符串中每个字符表示这一天的操作(即X:什么都不放;T:放捕鼠夹;C:放奶酪)。题目保证至少有一天的操作输入。

要求在第一行输出连续的字符串,与输入相对应,给出老鼠的状态:

第二行则应输出一个整数表示盈利。(如果有亏损,则是负数)

TXXXXC$输出样例1:D--U-!4输入样例2:CTTCCX$输出样例2:!DD--U11按题意模拟,水平不好代码有点长

输入的第一行是正整数N(<=1000),为散列表的长度。第二行给出了N个整数,其间用空格分隔,每个整数在序列中的位置(第一个数位置为0)即是其在散列表中的位置,其中负数表示表中该位置没有元素。题目保证表中的非负整数是各不相同的。

按照插入的顺序输出这些整数,其间用空格分隔,行首尾不能有多余的空格。注意:对应同一种分布结果,插入顺序有可能不唯一。例如按照顺序3、2、1插入长度为3的散列表,我们会得到跟1、2、3顺序插入一样的结果。在此规定:当前的插入有多种选择时,必须选择最小的数字,这样就保证了最终输出结果的唯一性。

1133113123438272232-121输出样例:1131221333438272232直接莽了个暴力,果然出奇迹

首先需要知道线性探测就是如果a[i]%n产生冲突就往后去找空的填(离散课)

然后就是把可以填的都找到,然后输出个最小的

O(n^3)~1e9嗯10ms

1#include2usingnamespacestd;34intn,a[1005],has[1005];5boolvis[1005];6boolcheck(inth,intok)7{8for(inti=0;(h+i)%n!=ok&&i=0)c++;22}23intok[1005],ac[1005],pac=0;24while(paca[i])33{34minn=a[i];35xb=i;36}37}38}39ac[pac++]=minn;40vis[xb]=true;41}42for(inti=0;i

现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。

输入在一行中给出一个[0,153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换成十六进制时不会出现A-F的数字。

输出对应的十进制数。

18输出样例:12水题

1#include2usingnamespacestd;34intmain()5{6intn;7cin>>n;8cout<

输入在一行中给出2个正整数A和B。

在4行中按照格式“A运算符B=结果”顺序输出和、差、积、商。

32输出样例:3+2=53-2=13*2=63/2=1水题

1#include2usingnamespacestd;34intmain()5{6inta,b;7cin>>a>>b;8printf("%d+%d=%d\n",a,b,a+b);9printf("%d-%d=%d\n",a,b,a-b);10printf("%d*%d=%d\n",a,b,a*b);11printf("%d/%d=%d\n",a,b,a/b);12return0;13}7-11兔子繁衍问题(15分)一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?

输入在一行中给出一个不超过10000的正整数N。

在一行中输出兔子总数达到N最少需要的月数。

30输出样例:9dp[i]表示第i天有多少对兔子

显然dp[i]=dp[i-1]+dp[i-2](昨天的+新出生的)

1#include2usingnamespacestd;34intmain()5{6intn;7cin>>n;8intdp[22]={0};9dp[1]=1;10dp[2]=1;11if(n==1)printf("%d\n",1);12else13{14for(inti=3;i<=21;i++)15{16dp[i]=dp[i-1]+dp[i-2];17if(dp[i]>=n)18{19printf("%d\n",i);20break;21}22}23}24return0;25}7-12复数四则运算(15分)本题要求编写程序,计算2个复数的和、差、积、商。

输入在一行中按照a1b1a2b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。

分别在4行中按照(a1+b1i)运算符(a2+b2i)=结果的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。如果结果的实部或者虚部为0,则不输出。如果结果为0,则输出0.0。

23.08-2.045.06输出样例1:(2.0+3.1i)+(-2.0+5.1i)=8.1i(2.0+3.1i)-(-2.0+5.1i)=4.0-2.0i(2.0+3.1i)*(-2.0+5.1i)=-19.7+3.8i(2.0+3.1i)/(-2.0+5.1i)=0.4-0.6i输入样例2:11-11.01输出样例2:(1.0+1.0i)+(-1.0+1.0i)=0.0(1.0+1.0i)-(-1.0+1.0i)=2.0+2.0i(1.0+1.0i)*(-1.0+1.0i)=-2.0i(1.0+1.0i)/(-1.0+1.0i)=-1.0大模拟,输出比较麻烦,这个精度误差EPS=0.1才可以过(跪了),除法考虑上下同乘共轭复数

本题目没有输入。

按照下列格式输出

fahr=100,celsius=计算所得摄氏温度的整数值通过计算得到C=37.7输出37即可,一开始输出了38(emmm)

1#include2usingnamespacestd;34intmain()5{6printf("fahr=100,celsius=37");7return0;8}7-14表格输出(5分)本题要求编写程序,按照规定格式输出表格。

要求严格按照给出的格式输出下列表格:

------------------------------------ProvinceArea(km2)Pop.(10K)------------------------------------Anhui139600.006461.00Beijing16410.541180.70Chongqing82400.003144.23Shanghai6340.501360.26Zhejiang101800.004894.00------------------------------------水题

1#include2usingnamespacestd;34intmain()5{6printf("------------------------------------\n");7printf("ProvinceArea(km2)Pop.(10K)\n");8printf("------------------------------------\n");9printf("Anhui139600.006461.00\n");10printf("Beijing16410.541180.70\n");11printf("Chongqing82400.003144.23\n");12printf("Shanghai6340.501360.26\n");13printf("Zhejiang101800.004894.00\n");14printf("------------------------------------\n");15return0;16}7-15水果忍者(30分)2010年风靡全球的“水果忍者”游戏,想必大家肯定都玩过吧?(没玩过也没关系啦~)在游戏当中,画面里会随机地弹射出一系列的水果与炸弹,玩家尽可能砍掉所有的水果而避免砍中炸弹,就可以完成游戏规定的任务。如果玩家可以一刀砍下画面当中一连串的水果,则会有额外的奖励,如图1所示。

图1

现在假如你是“水果忍者”游戏的玩家,你要做的一件事情就是,将画面当中的水果一刀砍下。这个问题看上去有些复杂,让我们把问题简化一些。我们将游戏世界想象成一个二维的平面。游戏当中的每个水果被简化成一条一条的垂直于水平线的竖直线段。而一刀砍下我们也仅考虑成能否找到一条直线,使之可以穿过所有代表水果的线段。

图2

如图2所示,其中绿色的垂直线段表示的就是一个一个的水果;灰色的虚线即表示穿过所有线段的某一条直线。可以从上图当中看出,对于这样一组线段的排列,我们是可以找到一刀切开所有水果的方案的。

另外,我们约定,如果某条直线恰好穿过了线段的端点也表示它砍中了这个线段所表示的水果。假如你是这样一个功能的开发者,你要如何来找到一条穿过它们的直线呢?

输入在第一行给出一个正整数N(<=104),表示水果的个数。随后N行,每行给出三个整数x,y1,y2,其间以空格分隔,表示一条端点为(x,y1)和(x,y2)的水果,其中y1>y2。注意:给出的水果输入集合一定存在一条可以将其全部穿过的直线,不需考虑不存在的情况。坐标为区间[10-6,106)内的整数。

在一行中输出穿过所有线段的直线上具有整数坐标的任意两点p1(x1,y1),p2(x2,y2),格式为x1,y1,x2,y2。注意:本题答案不唯一,由特殊裁判程序判定,但一定存在四个坐标全是整数的解。

首先如果线段X都相同(重合),那么就输出最小的上端点和最大的下端点

上图是通过对线段进行上下凸壳处理后的结果

上凸壳u维护一个栈,如果栈>=2并且p[i-1]在p[i-2]和p[i]的上方,就是(p[i]-p[i-1])X(p[i-2]-p[i-1])>0(叉积>0)

同理下凸壳d,叉积<0

根据题意,必然有解,那么上下凸壳不重合,答案就是图中灰色的虚线

THE END
1.梦幻西游手游修炼花费详解修炼需要花费多少本文小编将为大家解答梦幻西游手游各等级修炼需要花费多少钱,以清晰的数据让大家知道梦幻西游手游修炼需要多少钱,下面就一起来看看吧。 梦幻西游手游修炼花费数据表 以上就是梦幻西游手游各等级技能修炼花费多少钱的数据表格了,大家对应表格的数据就能清楚的看出修炼多少钱。https://www.18183.com/mhxy/201506/334141.html
2.梦幻手游修炼花费一览表85级8修全满花费是修炼等级0-20级,单个攻修花费10990W银币,单个防修花费7340W银币,8修全满消耗66020W银币。 以上就是梦幻西游手游各等级技能修炼花费价格的表格,希望对各位小伙伴们有…https://www.sohu.com/a/297850414_120099894
1.梦幻西游宠物修炼花费表汇总3、14-17级,修炼果80个。 4、18-20级,修炼果86个。 5、20-25级,需要修炼果204个。 6、一个修炼果的价格75万,等级越高需要花费的也就越多。 以上就是小编给大家带来的梦幻西游宠物修炼最新花费表一览,希望对各位玩家有所帮助,更多相关内容就在游侠手游。https://m.ali213.net/news/gl2312/1258471.html
2.MySQL学习笔记(练习)查询职工号为e1001的部门经理所管理的所有20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 ? 多表查询 # 1.显示所有员工的姓名,部门号和部门名称。SELECTe.last_name,e.department_id,d.department_nameFROMemployees eLEFTOUTERJOINdepartments dONe.department_id=d.department_id;# 2....https://blog.csdn.net/zxdspaopao/article/details/102636281
3.管理·心悦25年后调查发现: 27%的人没有目标:社会的最底层,抱怨整个世界 60%目标模糊:社社会的中下层面安稳地生活与工作 10%有清晰但较短期的目标:成为各行业的专业人士 3%有清晰且长期的目标:成为社会各界的顶尖人士 改变你的习惯 ---行为科学研究表明:一个人一天的行为只有5%是属于非习惯性的,而95%的行为都是习惯性...http://www.360doc.com/content/23/1017/17/1100551184_1100551184.shtml
4.梦幻西游四海同游偕老欢攻略四海同游偕老欢怎么玩梦幻西游四海同游偕老欢攻略 四海同游偕老欢(环任务) 活动条件 角色等级≥30级,队伍人数≥3人。 活动介绍 1. 活动期间,玩家(≥30级,至少3人组队)可以在长安城(230,120)重阳老仙处选择”四海同游偕老欢(环任务)“领取任务,根据系统提示和指引完成任务,环任务10环为一轮,每天≤80环为双倍奖励,81~120环为1.4倍...https://m.3dmgame.com/ol/gl/283332.html
5.梦幻西游手游乾元丹一颗需要多少银币乾元丹花费表梦幻西游手游乾元丹一颗需要多少银币?经脉点其实是乾元丹+星辰碎片一起激活的,乾元丹则是通过活跃度和经验换来的,这两个都不需要花钱只是废时间而已,玩家问的主要是星辰碎片的花费,因为激活经脉点乾元丹是前提,下面琵琶网小编就给大家分享一下乾元丹花费表。 http://www.pipaw.com/mhxy/407802.html
6.推荐2018年创业者必备的105种工具每段视频都需要付费,但是价格可低至每 20 美元一个视频。Promo 还提供高质的视频和音乐库,内含 350 多万条片段。你无须为了视频或音频片段额外付费——这些都包含在单个视频的制作费用里了。对于每周都需要进行推广的酒吧、餐厅甚至是 Facebook 视频广告来说,Promo 是一个很不错的选择。https://www.51cto.com/article/567660.html
7.GitHubBernardjue/GitHubChineseTop25 ityouknow/spring-boot-examples about learning Spring Boot via examples. Spring Boot 教程、技术栈示例代码,快速简单上手教程。 23.0k Java 07/19 26 kon9chunkit/GitHub-Chinese-Top-Charts GitHub中文排行榜,帮助你发现高分优秀中文项目、更高效地吸收国人的优秀经验成果;榜单每周更新一次,敬请关注...https://github.com/Bernard-jue/GitHub-Chinese-Top-Charts
8.关于市场调研报告东艾宠物医院的医生霍小东介绍,养猫狗的消费主要集中在猫粮、狗粮、防疫针、看病等方面,如小猫拉稀比较严重的话,需要输液,一周的花费可能会有上千块;宠物狗出门遛,洗澡的频率比较高,与其他狗或是大自然接触可能会生病或发生撕咬伤,或是误食牙签之类,这种可能会需要外科手术,也需要一定的费用。 https://www.ruiwen.com/diaoyanbaogao/6930751.html