以下为1/22洛谷blog搬运
编程练习Day1——【入门1】顺序结构
第一天刷题,本次题目来源题单:【入门1】顺序结构。挑了几个觉得可以稍微记录下的题。
B2005 字符三角形
1 | c = input() |
简单的循环输出。
P5704【深基2.例6】字母转换
1 | c = input() |
利用upper()转换。
P5705【深基2.例7】数字反转
1 | num = input().strip() |
本来是很简单的,但是之前一直WA…看了眼讨论区,发现是读入时没用strip()删除结尾的’/r’。
P5706【深基2.例8】再分肥宅水
1 | t,n = map(float,input().split()) |
格式化输出。
P5708【深基2.习2】三角形面积
1 | lst=list(map(float,input().split())) |
列表输入,sum()函数。
P5707【深基2.例12】上学迟到
1 | import math |
做的有点久,但思路其实很简单。主要注意要用到math.ceil()向上取整,才能符合题意。小时数用总分钟数地板除60以后再和24取余,负数取余可得到正数。最后格式化输出02代表输出两位,不足补0。
1/23
完成了第二个题单,有一两道卡了下。
本次题目来源题单:【入门2】分支结构
P5709【深基2.习6】Apples Prologue / 苹果和虫子]
1 | m,t,s=map(int,input().split()) |
注意除零问题。
P5713【深基3.例5】洛谷团队系统
1 | n = int(input()) |
三目运算符。
P5714【深基3.例7】肥胖问题
1 | m,h = map(float,input().split()) |
6g表示保留6位有效数字
P5715【深基3.例8】三位数排序
1 | lst = list(map(int,input().split())) |
用sort()排序。
P5716 【深基3.例9】月份天数
1 | yy,mm=map(int,input().split()) |
没啥可说的。
P1085 [NOIP2004 普及组] 不高兴的津津
1 | arr = [] |
注意考虑小于8小时的情况。
P1909 [NOIP2016 普及组] 买铅笔
1 | import math |
P5717【深基3.习8】三角形分类
1 | side = list(map(int, input().split())) |
做的时候想着三边都比一次多麻烦,想起自己判断三角形的时候都是先排序再计算,就优化了一下过程。
P1422 小玉家的电费
1 | n = int(input()) |
P1424 小鱼的航程(改进版)
1 | x ,n = map(int, input().split()) |
思路是弄明白游泳的天数,整一周肯定游5天。如果有剩余天数,和起始天数组合看看中间有没有休息。
P1888 三角函数
1 | side = list(map(int, input().split())) |
辗转相除法。
P4414 [COCI2006-2007#2] ABC
1 | lst = list(map(int, input().split())) |
注意转换。
P1055 [NOIP2008 普及组] ISBN 号码
1 | # 读入 |
做的时候遗漏了checksum为10(X)的情况
1/28
P5719【深基4.例3】分类平均
1 | n,k=map(int,input().split()) |
P5720【深基4.例4】一尺之棰
1 | length = int(input()) |
P5721【深基4.例6】数字直角三角形
1 | n = int(input()) |
P1009 [NOIP1998 普及组] 阶乘之和
1 | n = int(input()) |
将1到n的阶乘存储到lst[1:n+1]中,每一项可以由前一项求得,避免了重复计算。最后再将阶乘加起来
P1980 [NOIP2013 普及组] 计数问题
1 | n,x = map(int,input().split()) |
利用str()list()range()转化成字符串,再用count()计数
P1307 [NOIP2011 普及组] 数字反转
1 | s = input() |
P1720 月落乌啼算钱(斐波那契数列)
嗯?斐波那契
1 | n = int(input()) |
P1420 最长连号
1 | # 递归方法 |
P1075 [NOIP2012 普及组] 质因数分解
1 | n = int(input()) |
可能优化就是先挑出质数再遍历。
P5725【深基4.习8】求三角形
1 | n = int(input()) |
P5726【深基4.习9】打分
1 | n = int(input()) |
P4956 [COCI2017-2018#6] Davor
1 | # 52*(7x+21k)=52*7(x+3k) |
P1089 [NOIP2004 提高组] 津津的储蓄计划
1 | save,mum_save = 0,0 |
P1217 [USACO1.5] 回文质数 Prime Palindromes
1 | a,b = map(int,input().split()) |
tle了,需要改进算法。
1 | def is_prime(num): |
稍微变动了一下,判断完2以后,不再判断偶数。少了一个tle。
学习一下素数筛
1 | # 埃式筛 |
然鹅还是不行,先放这里吧。
P5723【深基4.例13】质数口袋
1 | L = int(input()) |
这题倒是简单。
1/29
不到一天的时间完成,不过收获颇多,像是用python创建多维数组,异或的应用,不同的输入方式什么的…
P1428 小鱼比可爱
1 | n = int(input()) |
P1427 小鱼的数字游戏
1 | a = list(map(int,input().split())) |
P5727【深基5.例3】冰雹猜想
1 | n = int(input()) |
P1047 [NOIP2005 普及组] 校门外的树
1 | l, m = map(int,input().split()) |
P5728【深基5.例5】旗鼓相当的对手
1 | n = int(input()) |
P2550 [AHOI2001] 彩票摇奖
1 | n = int(input()) |
P5729【深基5.例7】工艺品制作
1 | w, x, h = map(int,input().split()) |
校门外的树升级版,一维数组变三维数组,注意数组边界。
P2615 [NOIP2015 提高组] 神奇的幻方
Magic Odd Square 代码同本题。
1 | n = int(input()) |
P5730【深基5.例10】显示屏
1 |
|
看着就痛苦,直接找大佬题解copy了。
P1554 梦中的统计
1 | m, n = map(int,input().split()) |
P2141 [NOIP2014 普及组] 珠心算测验
1 | n = int(input()) |
P1614 爱与愁的心痛
1 | n, m = map(int, input().split()) |
P2911 [USACO08OCT] Bovine Bones G
1 | s1, s2, s3 = map(int, input().split()) |
P1161 开灯
1 | # 模拟法 |
1 | # 利用异或,从开始一个灯没亮经过n次操作到只剩一个灯亮着,故每次与ans异或,到最后便为答案 |
P5731【深基5.习6】蛇形方阵
1 | n = int(input()) |
又一道模拟题,开始没想到加个方向变量,后面想到了却又因为被绕进去了就调了半天…
P5732【深基5.习7】杨辉三角
1 | n = int(input()) |
P1789【Mc生存】插火把
1 | # 边长,火把,萤石 |
注意坐标表示,容易出错。
P1319 压缩技术
1 | lst = list(map(int, input().split())) |
P1320 压缩技术(续集版)
1 | # 由输入为N*N矩阵,可以从第一行输入获取N |
P1205 [USACO1.2] 方块转换 Transformations
1 | # create_graph() |
emmmm这是目前这周写的最长的代码了,不过写的很开心。
本题重点可能在找转90度后的坐标关系。
转180和270也有对应关系,不过直接偷懒摆了。
1/31
字符串掌握的明显不熟,需加强。
P5733【深基6.例1】自动修正
1 | s = input() |
?
P1914 小书童——凯撒密码
1 | n,s = int(input()),input() |
P1125 [NOIP2008 提高组] 笨小猴
1 | s, cnt = input(), [0]*25 |
P1957 口算练习题
1 | i = int(input()) |
注意join()和+用法不一样,刚刚在这里卡了半天…
用到了eval()
求表达式值
P5015 [NOIP2018 普及组] 标题统计
1 | print(len(''.join(input().split()))) |
一行解决~
P5734【深基6.例6】文字处理软件
1 | q, str = int(input()),input().strip() |
本卡了半天,晕晕
以后注意在接受没用split()字符串的时候记得加个strip()
P1308 [NOIP2011 普及组] 统计单词数
1 | # 因为空格也算数,又要保证数的是整个词,所以单词与文章前后加上空格,方便查找位置。 |
P1765 手机
之前就被坑过,读字符串的时候加了strip(),但是还是WA了,翻了翻评论区,试了下replace(),就全过了
1 | # 错误示范1: |
1 | # AC code: |
P3741 honoka的键盘
开始的思路是:
存在3个V或3个k相连时,一次可以多一个VK
在开头和结尾只有两个V或者K的情况没有统计进去,故给前后都添加一个字符
但是这样做还是没全AC,剩下没过的全是多统计了一个
1 | for add in ['V','K']: |
s = “VVK” 情况下,下面这种判断不正确
1 | if 'VV' in s or 'KK' in s: |
最终还是选择先遍历一遍字符串,统计“VK”数量并修改为XX,然后再查找是否还存在“VV”或“KK”
1 | n, s = int(input()), input().strip() |
P1321 单词覆盖还原
1 | s = input().strip() |
没想到代码这么简单…想了半天都想不出来,实在不行看了题解
P1553 数字反转(升级版)
1 | s, ans = input().strip(), '' |
P1603 斯诺登的密码
1 | s, tar, value, res, ans = list(input().replace('\r','').split()), [], [], [], '' |
P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here
1 | s1, s2 = input().strip(), input().strip() |
P1597 语句解析
1 | a,b,c = 0,0,0 |
我真是个小机灵鬼
P1598 垂直柱状图
1 | rec, cnt = '', [0]*26 |
2/3
P5735【深基7.例1】距离函数
1 | points, c = [], 0.0 |
P5736【深基7.例2】质数筛
1 | n, lst = input().strip(), list(map(int,input().split())) |
P5737【深基7.例3】闰年展示
1 | a, b = map(int, input().strip().split()) |
P5738【深基7.例4】歌唱比赛
1 | n, m = map(int, input().strip().split()) |
P5739【深基7.例7】计算阶乘
1 | n = int(input()) |
P5461 赦免战俘
1 | n = int(input()) |
被坐标卡了半天,难绷。最后还是带入例子验证了一遍。
P5740【深基7.例9】最厉害的学生
1 | stu, n, idx, max_i, max_s = [], int(input()), 0, 0, 0 |
1 | # class Student: |
试图用类,无果。
P5741【深基7.例10】旗鼓相当的对手 - 加强版
1 | stu, n, idx= [], int(input()), 0 |
P5742【深基7.例11】评等级
1 | n = int(input()) |
P1304 哥德巴赫猜想
1 | n = int(input()) |
P2415 集合求和
1 | lst = list(map(int,input().split())) |
P5743【深基7.习8】猴子吃桃
1 | n, now = int(input()), 1 |
P5744【深基7.习9】培训
1 | n = int(input()) |