2016桂城镇赛五年级题解c++

📅 2026/7/17 4:13:06
2016桂城镇赛五年级题解c++
目录1.长度gc2016五年级1输入格式输出格式输入/输出例子12.面积输入格式输出格式输入/输出例子1样例解释3.唯一gc2016五年级3输入格式输出格式输入/输出例子14. 计时器gc2016五年级4输入格式输出格式输入/输出例子1样例解释5.方案数gc2016五年级56.位置gc2016五年级6输入格式输出格式输入/输出例子1hello,大家好我是金奇人生。话不多说我们来讲代码1.长度gc2016五年级1学校体艺节有一种新形式的马拉松比赛运动员需要用N 分钟的时间跑看谁跑的最远。晨晨报名参加了这个比赛已知她每分钟的速度是v1,v2,…,vn问晨晨总共跑了多长的距离输入格式第一行1个正整数N表示晨晨要跑N分钟。 N的范围为[1, 100]。第二行N个整数表示晨晨每分钟跑步的速度。每个数的范围为[1, 500]。输出格式一个整数N分钟晨晨总共跑的距离。输入/输出例子1输入32 5 3输出10这道题纯纯签到题来#includebits/stdc.h using namespace std; int n,a,ans; int main(){ cinn; for(int i1; in; i){ cina; ansa; } coutans; return 0; }2.面积为了准备运动会颁奖典礼学校想购买一块长方形的红地毯已知学校给的的钱刚好够买面积为N的红地毯。由于地毯的边上要用长度为1的花边装饰当然是边长越短越好长度是整数。为了节省花边老师要求晨晨通过编计算机程序来计算边长最短是多少输入格式一行1个整数N表示矩形的面积。N的范围为[1, 1000000000]。输出格式一行一个整数表示边长。输入/输出例子1输入15输出16样例解释红地毯的边长分别为3和5这道题纯枚举注意要开long long!#includebits/stdc.h using namespace std; long long n,ansLONG_LONG_MAX; int main(){ scanf(%lld,n); for(int i1; i*in; i){ long long t0; if(n%i0){ t(in/i)*2; if(tans)break; ansmin(ans,t); } } printf(%lld,ans); return 0; }3.唯一gc2016五年级3晨晨陪哥哥到电信局去买手机电信局送一个手机号给他们。现在有N个号码供晨晨他们选已知这些电话都是130开头的因此只要挑选后8位的数字。晨晨的哥哥想选一个有“特点”的号码每个数字要么是0要么是奇数。由于号码太多并且有“特点”的号码只有一个哥哥要求晨晨通过编计算机程序来找出这个号码。输入格式第1行一个正整数N表示号码的个数。N的范围为[1, 1000]。第2行N个整数每个正整数是一个8位的数字组成前面可能有0。输出格式一行一个8位整数每个数字要么是0要么是奇数。输入数据保证有且仅有一个答案输入/输出例子1输入3356790120013059708590383输出00130597代上码!!!#includebits/stdc.h using namespace std; int n; string s,u; int main(){ cinn; for(int i1; in; i){ cins; bool ftrue; for(int j0; js.size(); j){ if((s[j]-0)%20 s[j]!0){ ffalse; break; } } if(ftrue)us; } coutu; return 0; }4. 计时器gc2016五年级4输入格式第1行2个正整数N和K。N、K的范围为[1, 100000]。第2行N个整数每个整数范围为[0, 99]。输出格式一整数表示晨晨总共会收集到的计时器个数。输入/输出例子1输入6 30 45 94 91 91 85输出4样例解释样例解释晨晨可以收集到第1、3、4、6这4个计时器。依旧题目先行代码殿后。#includebits/stdc.h using namespace std; long long n,k,a,ans; int main(){ cinnk; for(int i0; in; i){ cina; if((ai*k)%1000)ans; } coutans; return 0; }5.方案数gc2016五年级5这题我用了回溯的方法其实可以暴力~~~#includebits/stdc.h using namespace std; int k,yu1,a[5],t1; string s[5],b[30]; int f(int h){ if(hk){ string shu; for(int i1; ik; i) shus[a[i]]; for(int i1; it; i){ if(shub[i]){ yu--; break; } } b[t]shu; t; } else{ for(int i1; ik; i){ bool u1; for(int j1; jh; j){ if(ia[j]){ u0; break; } } if(u1){ a[h]i; f(h1); } } } } int main(){ cink; for(int i2; ik; i) yu*i; for(int i1; ik; i) cins[i]; if(k1){ cout1; return 0; } f(1); coutyu; return 0; }6.位置gc2016五年级6由于晨晨还没有研究出核心算法在游戏中总是被明明击败。晨晨拿出了杀手锏进行反击精心设计了一个数学难题N个地砖每个上面写有一个编号开始这些编号从左到右正好是1到N。例如N20时地砖摆放如下1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20晨晨对其中哪些位置上的编号是回文数感兴趣不过这个问题不足以击败明明比如上面的N20,明明很容易就给出答案1 2 3 4 5 6 7 8 9 11晨晨为了干扰明明疯狂地进行了M次操作每次操作如下给定2个整数a和b 1 ≤ a ≤ b ≤N晨晨把位置a到b的这段地砖的编号左右“翻转”一下。比如对于N20M2。执行一次a3, b15的操作地砖编号变为1 2 15 14 13 12 11 10 9 8 7 6 5 4 3 16 17 18 19 20再执行一次a1, b4的操作地砖编号变为14 15 2 1 13 12 11 10 9 8 7 6 5 4 3 16 17 18 19 20如果这个时候晨晨再问明明回文数的位置明明就要给出答案3 4 7 9 10 11 12 13 14 15输入格式第一行2个正整数NM。N的范围为[1, 1000000]M的范围为[1, 1000]。下面M行每行2个整数a和b1 ≤ a ≤ b ≤N。数据范围50%数据1 ≤ N ≤ 10000;输出格式一行整数表示所有编号为回文数的地砖的位置。输入/输出例子1输入100 35 201 10010 90输出2 13 15 16 17 18 19 21 32 43 54 65 76 87 97 98 99 100这道题如果下标计数加暴力会超时要另想办法#includebits/stdc.h using namespace std; int n,m,a,b; int hui[1000005],t; int main(){ cinnm; for(int i1; in; i){ int shui,yu0; while(shu!0){ yuyu*10shu%10; shu/10; } if(yui)hui[t]i; } for(int i1; im; i){ cinab; for(int j1; jt; j) if(hui[j]a hui[j]b)hui[j]b-hui[j]a; } sort(hui1,hui1t); for(int i1; it; i) couthui[i] ; return 0; }这套题整体来说不难就是第五题和第六题有点儿烦~~~下课