P1079 Vigenère 密码(分类,模运算处理循环)

  (希望大家不要Copy)

  AC:Accept,程序通过。CE:Compile Error,编译错误。PC:Partially Correct,部分正确。WA:Wrong Answer,答案错误。RE:Runtime Error,运行时错误。TLE:Time Limit Exceeded,超出时间限制。MLE:Memory Limit Exceeded,超出内存限制。OLE:Output Limit Exceeded,输出超过限制。UKE:Unknown Error,出现未知错误。 解决RE的方法:

  给所有变量赋初值0不用void,记得return 0数组开合适大小,建议习惯性开10000 防止segment fault:一些开的很大的数组,应设置为全局变量

  如果程序过不了,尝试更改变量作用域等等…

  题目描述

  输入一个不小于 100100 且小于 10001000,同时包括小数点后一位的一个浮点数,例如 123.4123.4 ,要求把这个数字翻转过来,变成 4.3214.321 并输出。

  输入格式

  一行一个浮点数

  输出格式

  一行一个浮点数

  此代码未过关,修改中:

  过关代码:

  题目背景

  众所周知,一场考试需要一道签到题。

  题目描述

  给定 n,mn,m,求有多少个正整数 xx,使得 x^mle nx

  m

  ≤n。

  输入格式

  一行两个正整数 n,mn,m。

  输出格式

  一个整数表示正整数 xx 的个数。

  题目描述

  津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

  输入格式

  输入包括77行数据,分别表示周一到周日的日程安排。每行包括两个小于1010的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

  输出格式

  一个数字。如果不会不高兴则输出00,如果会则输出最不高兴的是周几(用1, 2, 3, 4, 5, 6, 71,2,3,4,5,6,7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

  自己去洛谷看题

  题目描述

  试计算在区间 11 到 nn的所有整数中,数字x(0 ≤ x ≤ 9)x(0≤x≤9)共出现了多少次?例如,在 11到1111中,即在 1,2,3,4,5,6,7,8,9,10,111,2,3,4,5,6,7,8,9,10,11 中,数字 11 出现了 44 次。

  输入格式

  22个整数n,xn,x,之间用一个空格隔开。

  输出格式

  11个整数,表示xx出现的次数。

  题目描述

  津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

  为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%20%还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100100元或恰好100100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

  例如1111月初津津手中还有8383元,妈妈给了津津300300元。津津预计1111月的花销是180180元,那么她就会在妈妈那里存200200元,自己留下183183元。到了1111月月末,津津手中会剩下33元钱。

  津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

  现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。

  输入格式

  1212行数据,每行包含一个小于350350的非负整数,分别表示11月到1212月津津的预算。

  输出格式

  一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出-X?X,XX表示出现这种情况的第一个月;否则输出到20042004年年末津津手中会有多少钱。

  注意,洛谷不需要进行文件输入输出,而是标准输入输出。

  【题目描述】

  幻方是一种很神奇的 N*NN?N 矩阵:它由数字 1,2,3,cdots cdots ,N imes N1,2,3,??,N×N 构成,且每行、每列及两条对角线上的数字之和都相同。

  当 NN 为奇数时,我们可以通过下方法构建一个幻方:

  首先将 11 写在第一行的中间。

  之后,按如下方式从小到大依次填写每个数 K (K=2,3,cdots,N imes N)K(K=2,3,?,N×N) :

  若 (K-1)(K?1) 在第一行但不在最后一列,则将 KK 填在最后一行, (K-1)(K?1) 所在列的右一列;

  若 (K-1)(K?1) 在最后一列但不在第一行,则将 KK 填在第一列, (K-1)(K?1) 所在行的上一行;

  若 (K-1)(K?1) 在第一行最后一列,则将 KK 填在 (K-1)(K?1) 的正下方;

  若 (K-1)(K?1) 既不在第一行,也不在最后一列,如果 (K-1)(K?1) 的右上方还未填数,则将 KK 填在 (K-1)(K?1) 的右上方,否则将 KK 填在 (K-1)(K?1) 的正下方。

  现给定 NN ,请按上述方法构造 N imes NN×N 的幻方。

  【输入格式】

  一个正整数 NN ,即幻方的大小。

  【输出格式】

  共 NN 行 ,每行 NN 个整数,即按上述方法构造出的 N imes NN×N 的幻方,相邻两个整数之间用单空格隔开。

  题目描述

  小 A 有一个质数口袋,里面可以装各个质数。他从 22 开始,依次判断各个自然数是不是质数,如果是质数就会把这个数字装入口袋。口袋的负载量就是口袋里的所有数字之和。但是口袋的承重量有限,不能装得下总和超过 L的质数。给出 L,请问口袋里能装下几个质数?将这些质数从小往大输出,然后输出最多能装下的质数个数,所有数字之间有一空行。

  输入格式

  一行一个正整数 L。

  输出格式

  将这些质数从小往大输出,然后输出最多能装下的质数个数,所有数字之间有一空行。

  题目描述

  若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。

  例如:给定一个十进制数 5656,将 5656 加 6565(即把 5656 从右向左读),得到 121121 是一个回文数。

  又如:对于十进制数 8787:

  STEP1:87+78=16587+78=165

  STEP2:165+561=726165+561=726

  STEP3:726+627=1353726+627=1353

  STEP4:1353+3531=48841353+3531=4884

  在这里的一步是指进行了一次 NN 进制的加法,上例最少用了 44 步得到回文数 48844884。

  写一个程序,给定一个 NN(2 le N le 102≤N≤10 或 N=16N=16)进制数 MM(100100 位之内),求最少经过几步可以得到回文数。如果在 3030 步以内(包含 3030 步)不可能得到回文数,则输出 Impossible!。

  输入格式

  两行,分别是 NN,MM。

  输出格式

  如果能在 3030 步以内得到回文数,输出格式形如 STEP=ans,其中 ansans 为最少得到回文数的步数。

  否则输出 Impossible!。

  函数修改实参:先声明一个指针(假设int p=&num)指向要修改的数,然后把指针传入函数,在函数内,对p进行操作,就可以修改num的值

  原题略,直接去洛谷搜题号吧

  原题去洛谷

  一开始会错意,把题目倒过来了,违背了原题初衷:

  在这里插入图片描述

  (参考这道题下的题解,总之可以一直找到example)

  题目正确的代码:

  (因为偷懒,暂时没看代码的逻辑)

  题目描述

  明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了NN个11到10001000之间的随机整数(N≤100)(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

  输入格式

  输入有两行,第11行为11个正整数,表示所生成的随机数的个数NN

  第22行有NN个用空格隔开的正整数,为所产生的随机数。

  输出格式

  输出也是两行,第11行为11个正整数MM,表示不相同的随机数的个数。

  第22行为MM个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

  方法一:分别写出去重函数和qsort排序

  方法二:桶排序(推荐)

  桶排序的思路比较简单,不再赘述。

  题目描述

  世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,AA市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%150%划定,即如果计划录取mm名志愿者,则面试分数线为排名第m imes 150%m×150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。

  现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。

  输入格式

  第一行,两个整数 n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n)n,m(5≤n≤5000,3≤m≤n),中间用一个空格隔开,其中nn表示报名参加笔试的选手总数,mm表示计划录取的志愿者人数。输入数据保证 m imes 150%m×150%向下取整后小于等于 nn。

  第二行到第 n+1n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号 k(1000 ≤ k ≤ 9999)k(1000≤k≤9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)s(1≤s≤100)。数据保证选手的报名号各不相同。

  输出格式

  第一行,有22个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。

  从第二行开始,每行包含22个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。

  题目描述

  某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面,这样,每个学生的排序是唯一确定的。

  任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是:

  77 279279

  55 279279

  这两行数据的含义是:总分最高的两个同学的学号依次是77号、55号。这两名同学的总分都是 279279 (总分等于输入的语文、数学、英语三科成绩之和) ,但学号为77的学生语文成绩更高一些。如果你的前两名的输出数据是:

  55 279279

  77 279279

  则按输出错误处理,不能得分。

  输入格式

  共n+1行。

  第11行为一个正整数n( le 300)n(≤300),表示该校参加评选的学生人数。

  第22到n+1n+1行,每行有33个用空格隔开的数字,每个数字都在00到100100之间。第jj行的33个数字依次表示学号为j-1j?1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1~n1 n(恰好是输入数据的行号减11)。

  所给的数据都是正确的,不必检验。

  //感谢 黄小U饮品 修正输入格式

  输出格式

  共5行,每行是两个用空格隔开的正整数,依次表示前55名学生的学号和总分。

  游戏规则含图片,直接附上题目链接:这儿

  题目不难,用switch可以少用一些if

  题目描述

  为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 nn 张地毯,编号从 11 到 nn。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。

  地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。

  输入格式

  输入共 n + 2n+2 行。

  第一行,一个整数 nn,表示总共有 nn 张地毯。

  接下来的 nn 行中,第 i+1i+1 行表示编号 ii 的地毯的信息,包含四个整数 a ,b ,g ,ka,b,g,k,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标 (a, b)(a,b) 以及地毯在 xx 轴和 yy 轴方向的长度。

  第 n + 2n+2 行包含两个整数 xx 和 yy,表示所求的地面的点的坐标 (x, y)(x,y)。

  输出格式

  输出共 11 行,一个整数,表示所求的地毯的编号;若此处没有被地毯覆盖则输出 -1。

  这估计是我做得最顺的一道题

  求复习最短时间

  该题解已搞懂

  题目:kokodayo

  题目描述

  传说很遥远的藏宝楼顶层藏着诱人的宝藏。小明历尽千辛万苦终于找到传说中的这个藏宝楼,藏宝楼的门口竖着一个木板,上面写有几个大字:寻宝说明书。说明书的内容如下:

  藏宝楼共有N+1N+1层,最上面一层是顶层,顶层有一个房间里面藏着宝藏。除了顶层外,藏宝楼另有NN层,每层MM个房间,这MM个房间围成一圈并按逆时针方向依次编号为0,…,M-10,…,M?1。其中一些房间有通往上一层的楼梯,每层楼的楼梯设计可能不同。每个房间里有一个指示牌,指示牌上有一个数字xx,表示从这个房间开始按逆时针方向选择第xx个有楼梯的房间(假定该房间的编号为k),从该房间上楼,上楼后到达上一层的kk号房间。比如当前房间的指示牌上写着22,则按逆时针方向开始尝试,找到第22个有楼梯的房间,从该房间上楼。如果当前房间本身就有楼梯通向上层,该房间作为第一个有楼梯的房间。

  寻宝说明书的最后用红色大号字体写着:“寻宝须知:帮助你找到每层上楼房间的指示牌上的数字(即每层第一个进入的房间内指示牌上的数字)总和为打开宝箱的密钥”。

  请帮助小明算出这个打开宝箱的密钥。

  输入格式

  第一行22个整数NN和MM,之间用一个空格隔开。NN表示除了顶层外藏宝楼共NN层楼,MM表示除顶层外每层楼有MM个房间。

  接下来N imes MN×M行,每行两个整数,之间用一个空格隔开,每行描述一个房间内的情况,其中第(i-1) imes M+j(i?1)×M+j行表示第ii层j-1j?1号房间的情况(i=1,2,…, Ni=1,2,…,N;j=1,2,…,Mj=1,2,…,M)。第一个整数表示该房间是否有楼梯通往上一层(00表示没有,11表示有),第二个整数表示指示牌上的数字。注意,从jj号房间的楼梯爬到上一层到达的房间一定也是jj号房间。

  最后一行,一个整数,表示小明从藏宝楼底层的几号房间进入开始寻宝(注:房间编号从00开始)。

  输出格式

  一个整数,表示打开宝箱的密钥,这个数可能会很大,请输出对2012320123取模的结果即可。

  我的答案,超时:

  正解,可惜我看的不太懂

  题目描述

  最近欢欢看到一本有关火星的书籍,其中她被一个加法运算所困惑,由于她的运算水平有限.她想向你求助,作为一位优秀的程序员,你当然不会拒绝。

  输入格式

  第一行先输入一个运算的进制N(2<=N<=36),接下来两行为需要进行运算的字符,其中每个字符串的长度不超过200位,其为N进制的数。其中包括0-9及a-z(代表10-35)。

  输出格式

  在N进制下它们的和

  这道题目是典型的高精度,相较于其他几道题

  题目描述

  给一n imes nn×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。

  输入格式

  第一行输入一个数nn。(7 le n le 1007≤n≤100)。

  第二行开始输入n imes nn×n的字母矩阵。

  输出格式

  突出显示单词的n imes nn×n矩阵。

  DFS:深度优先搜索

  题目描述

  由于近期的降雨,雨水汇集在农民约翰的田地不同的地方。我们用一个NxM(1<=N<=100;1<=M<=100)网格图表示。每个网格中有水(‘W’) 或是旱地(’.’)。一个网格与其周围的八个网格相连,而一组相连的网格视为一个水坑。约翰想弄清楚他的田地已经形成了多少水坑。给出约翰田地的示意图,确定当中有多少水坑。

  输入格式

  第1行:两个空格隔开的整数:N 和 M 第2行到第N+1行:每行M个字符,每个字符是’W’或’.’,它们表示网格图中的一排。字符之间没有空格。

  输出格式

  一行:水坑的数量

  这道题还可以用BFS(广度优先搜索),本蒟蒻太懒先搁着…

  题目描述

  一个N×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少。

  输入格式

  第1行有一个正整数T,表示了有T组数据。

  对于每一组数据,第一行有两个正整数N和M,表示了数字矩阵为N行M列。

  接下来N行,每行M个非负整数,描述了这个数字矩阵。

  输出格式

  T行,每行一个非负整数,输出所求得的答案。

  题目描述

  楼梯有 NN 阶,上楼可以一步上一阶,也可以一步上二阶。

  编一个程序,计算共有多少种不同的走法。

  输入格式

  一个数字,楼梯数。

  输出格式

  输出走的方式总数。

  为什么要用斐波拉契

  也可以看这道题下边的题解,有一个题解讲原因讲得不错

  题目背景

  无

  题目描述

  一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房 m 开始爬到蜂房 n,m<n,有多少种爬行路线?

  本题和上一题数楼梯是一样的,只是修改了部分变量

  题目描述

  我们要求找出具有下列性质数的个数(包含输入的正整数 nn)。

  先输入一个正整数 nn(n le 1000n≤1000),然后对此正整数按照如下方法进行处理:

  不作任何处理;

  在它的左边加上一个正整数,但该正整数不能超过原数的一半;

  加上数后,继续按此规则进行处理,直到不能再加正整数为止。

  输入格式

  11 个正整数 nn(n le 1000n≤1000)

  输出格式

  11 个整数,表示具有该性质数的个数。

  如果说递归时间复杂度较高,那么递推就是要用一些数学方法,找到规律,降低时间复杂度

  题目:kokodayo

  看到01背包问题,脑海中一定要有表

  若钱充足,办法总数就等于吃这道菜的办法数与不吃这道菜的办法数之和;若不充足,办法总数就只能承袭吃前i-1道菜的办法总数。依次递推,在最后,我们只要输出f[n][m]的值即可。

  题目在这

  题目描述

  伐木工人米尔科需要砍倒M米长的木材。这是一个对米尔科来说很容易的工作,因为他有一个漂亮的新伐木机,可以像野火一样砍倒森林。不过,米尔科只被允许砍倒单行树木。

  米尔科的伐木机工作过程如下:米尔科设置一个高度参数H(米),伐木机升起一个巨大的锯片到高度H,并锯掉所有的树比H高的部分(当然,树木不高于H米的部分保持不变)。米尔科就行到树木被锯下的部分。

  例如,如果一行树的高度分别为20,15,10和17,米尔科把锯片升到15米的高度,切割后树木剩下的高度将是15,15,10和15,而米尔科将从第1棵树得到5米,从第4棵树得到2米,共得到7米木材。

  米尔科非常关注生态保护,所以他不会砍掉过多的木材。这正是他为什么尽可能高地设定伐木机锯片的原因。帮助米尔科找到伐木机锯片的最大的整数高度H,使得他能得到木材至少为M米。换句话说,如果再升高1米,则他将得不到M米木材。

  输入格式

  第1行:2个整数N和M,N表示树木的数量(1<=N<=1000000),M表示需要的木材总长度(1<=M<=2000000000)

  第2行:N个整数表示每棵树的高度,值均不超过1000000000。所有木材长度之和大于M,因此必有解。

  输出格式

  第1行:1个整数,表示砍树的最高高度。

  题目描述

  博览馆正在展出由世上最佳的 M 位画家所画的图画。

  wangjy想到博览馆去看这几位大师的作品。

  可是,那里的博览馆有一个很奇怪的规定,就是在购买门票时必须说明两个数字,

  a和b,代表他要看展览中的第 a 幅至第 b 幅画(包含 a 和 b)之间的所有图画,而门票

  的价钱就是一张图画一元。

  为了看到更多名师的画,wangjy希望入场后可以看到所有名师的图画(至少各一张)。

  可是他又想节省金钱。。。

  作为wangjy的朋友,他请你写一个程序决定他购买门票时的 a 值和 b 值。

  输入格式

  第一行是 N 和 M,分别代表博览馆内的图画总数及这些图画是由多少位名师的画

  所绘画的。

  其后的一行包含 N 个数字,它们都介于 1 和 M 之间,代表该位名师的编号。

  输出格式

  a和 b(a<=b) 由一个空格符所隔开。

  保证有解,如果多解,输出a最小的。

  【题目描述】

  三个整数分别为 A,B,CA,B,C . 这三个数字不会按照这样的顺序给你,但它们始终满足条件: A<B<CA<B<C . 为了看起来更加简洁明了,我们希望你可以按照给定的顺序重新排列它们。

  【输入格式】

  第一行包含三个正整数 A,B,CA,B,C ,不一定是按这个顺序。这三个数字都小于或等于 100100 。第二行包含三个大写字母 AA 、 BB 和 CC (它们之间没有空格)表示所需的顺序.

  【输出格式】

  在一行中输出 AA ,BB 和 CC ,用一个 (空格)隔开.