CSDN周赛第30期,成绩“0”分,天然气定单、小艺读书、买苹果🍎、圆桌。
-
Python 官网:https://www.python.org/
-
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
- My CSDN主页、My HOT博、My Python 学习个人备忘录
- 好文力荐、 老齐教室
本文质量分:
CSDN质量分查询入口:http://www.csdn.net/qc
- ◆我的零分周赛
- 1、天然气订单
- 1.1 题目描述
- 1.2 应考代码
- 1.3 优化代码
- 2、小艺读书
- 2.1 题目描述
- 2.2 应考代码
- 2.3 优化代码
- 3、买苹果
- 3.1 题目描述
- 3.2 应考代码
- 3.3 优化代码
- 4、圆桌
- 4.1 题目描述
- 4.2 应考代码
- 4.3 优化代码
- 5、本篇完整源码
◆我的零分周赛
CSDN第30期周赛,四个题目看起来都不难,算法感觉都会,费劲的一道道题目作答,写出来的Python3代码却是没有一题通关。😭😭
这即是“基础不牢,地动山摇”,“不写都晓得,一写啥也不明白”的真实写照啊。
偷偷录下四个题目,试着解答,以饷“伪卷”之心意;作此笔记,以警奋进……
1、天然气订单
题目 1/4 (25 分)
题目名称:天然气订单
时间限制:1000ms内存限制:256M
1.1 题目描述
天然气运输成本昂贵,危险性高,为了节省运输成本,提倡绿色环保,需要尽可能的优化订单配送,比如相同地区的天然气订单可以一次性配送。 现需要向多个地区运输天然气。但是同一个地区可能有多个订单需求。当前仅只知道某些成对的订单是同一个地区的,同一个地区的天然气需要尽可能一次性配送从而降低运输成本,所以需要尽可能的将同一个地区的订单放在一起。订单的编号是1到n。
输入描述:
输入第一行是两个正整数n,m,表示订单的数量和已知的关系数量。(1<=n,m<=10000) 接下来有m行,每行两个正整数a和b,表示a号订单和b号订单属于同一个地区(1<=a,b<=n);
输出描述:
输出第一行包含一个整数x,表示这些订单共来自x个不同的地区。接下来的输出包含x行,每行表示输出若干个订单编号,表示这些订单属于同一个地区,按照订单编号升序输出。优先输出最小的订单编号较小的地区
示例
输入
7 6
1 2
2 2
3 2
4 5
5 4
6 7
输出
3
1 2 3
4 5
6 7
提示
无
1.2 应考代码
应考答题截屏图
def solution(self, n, m, vector):
result = None
# TODO: 请在此编写代码
place = {}
for i in range(m):
tem = vector[i]
lis = place.get(tem[1], [])
lis.append(tem[0])
place[tem[1]] = lis
#print(place) 调试用语句。
result = [str(len(place))]
lis = list(place.keys())
lis.sort()
for i in lis:
result.append(' '.join(map(str, place.get(i))))
#input(result) 调试用语句。
return result
def solution(self, n, m, vector):
result = None
# TODO: 请在此编写代码
result = [vector.pop(0)] # 取出第一组关系数据放入结果列表。
for i in vector: # 遍历剩下的关系数据组。
#print('out:', result) # 调试用语句。
a, b = i
flag = True
for j in result: # 比对并收集相同地域定单。
if a in j or b in j:
j.extend(i)
flag = False
break
if flag:
result.append(i) # 结果列表无相同地域,则追加。
result = list(map(set, result)) # 集合去除重复收集的相同定单号。
result = [' '.join(map(str, i)) for i in result] # 字符化转存输出数据。
result = [str(len(result))] + result # 插入输出定单区域总数。
#input(result) # 调试用语句。
return result
1.3 优化代码
def solution(self, n, m, vector):
result = None
# TODO: 请在此编写代码
def place(a, b):
''' 收集相同地区定单 '''
for i in result:
if a in i or b in i:
if a not in i:
i.append(a)
elif b not in i:
i.append(b)
return
return True
result = []
for i in vector:
''' 遍历地区关系列表 '''
a, b = i
if place(a, b):
result.append(i)
result = [' '.join(map(str, i)) for i in result]
#input(result) # 调试用语句。
return [str(len(result))] + result
n, m = map(int, input().strip().split())
#input([n, m]) # 调试用语句。
vector = [list(map(int, (input().strip().split()))) for i in range(m)]
2、小艺读书
题目 2/4 (25 分)
题目名称:小艺读书
时间限制:1000ms内存限制:256M
2.1 题目描述
书是人类进步的阶梯。
小艺每周因为工作的原因会选择性的每天多读几页或者少读几页。
小艺想知道一本n页的书她会在周几读完。
输入描述:
第一行输入n(1<=n<=1000);
第二行输入7个整数,分别表示周一~周日的读书页数p(0<=p<=1000)。(不考虑7个整数都为0的情况)
输出描述:
输出答案。(1-7)
示例
输入
100
15 20 20 15 10 30 45
输出
6
提示
无
2.2 应考代码
应考答题截屏图
2.3 优化代码
3、买苹果
题目 3/4 (25 分)
题目名称:买苹果
时间限制:1000ms内存限制:256M
3.1 题目描述
小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。
输入描述:
输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果
输出描述:
输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1
示例
输入
20
输出
提示
无
3.2 应考代码
应考答题截屏图
3.3 优化代码
4、圆桌
题目 4/4 (25 分)
题目名称:圆桌
时间限制:1000ms内存限制:256M
4.1 题目描述
有N个客人与足够多张的圆桌。主人安排每位客人坐在一个圆桌边,但是每位客人希望自己左右边上分别有一些空座位,不然会觉得害羞。注意,如果一个客人所在的圆桌只有他一个人,那么他左边的空座位数量就是他右边的空座位数量。 试问主人需要准备多少个座位,才能让每个客人舒适的坐下。
输入描述:
第一行输入一个整数N,(1<=N<=10000),代表客人的数量 接下来N行,每行两个整数li与ri,(1<=i<=N,1<=li<=ri<=1000000000) 代表第i位客人希望左边有li个空座位,右边有ri个空座位。
输出描述:
输出一个整数,代表主人需要准备的最少座位数量。
示例1
输入
3
1 1
1 1
1 1
输出
6
示例2
输入
4
1 2
2 1
3 5
5 3
输出
15
提示
【样例解释】3个人围成一桌,每人左右各一个空位置,一共3个空座位。一个共需要3+3=6座位。
4.2 应考代码
应考答题截屏图
4.3 优化代码
5、本篇完整源码
(源码较长,点此跳过源码)
__上一篇:__ ChatGPT初体验(ChatGPT国内镜像站试用,聊天、Python代码生成)
__下一篇:__
我的HOT博:
- New:ChatGPT初体验(ChatGPT国内镜像站初体验,聊天、Python代码生成。)CSDN质量分92。(30687阅读)
- 尼姆游戏(彩色文字界面版,\033控制码实现。Linux系统有效。)CSDN质量分xx。(1001阅读)
- 神奇的 \033 ,让打印出彩(1739阅读)
- 小炼二维数组(1764阅读)
- 仿真模拟福彩双色球(2622阅读)
- Python之魔幻切片(1417阅读)
- 数列求和a, aa, aaa, ..., aa...aa(n个a)(1729阅读)
- 个人信息提取(2671阅读)
- 中文字符命名Python变量和函数(1021阅读)
- 我的Python学习笔记(1021阅读)
- 十六进制字符串转Python代码(utf-8字符串转十六进制字符串)(1319阅读)
- 生成100个随机正整数(2489阅读)
- 给定字符串提取姓名(字符串、list、re“零宽断言”)(1842阅读)
- 我的 Python.color() (Python 色彩打印控制)(2370阅读)
- python清屏(3150阅读)
- 回车符、换行符和回车换行符(3558阅读)
- Linux 脚本文件第一行的特殊注释符(井号和感叹号组合)的含义(2301阅读)
- random.sample()将在python 3.9x后续版本中被弃用(2045阅读)
- pandas 数据类型之 Series(1809阅读)
- 聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )(2332阅读)
- 练习:银行复利计算(用 for 循环解一道初中小题)(2159阅读)
- pandas 数据类型之 DataFrame(5932阅读)
- 班里有人和我同生日难吗?(蒙特卡洛随机模拟法)(2921阅读)
- Python 续行符(\)“拯救”你的超长语句(1502阅读)
- Python字符串居中显示(4684阅读)
- 练习:求偶数和、阈值分割和求差( list 对象的两个基础小题)(2331阅读)
- 用 pandas 解一道小题(2268阅读)
- 可迭代对象和四个函数(1752阅读)
- “快乐数”判断(1847阅读)
- 罗马数字转换器(构造元素取模)(3157阅读)
- Hot:罗马数字(转换器|罗生成器)(5783阅读)
- Hot:让QQ群昵称色变的代码(49777阅读)
- Hot:斐波那契数列(递归| for )(4719阅读)
- 柱状图中最大矩形(2348阅读)
- 排序数组元素的重复起止(1964阅读)
- 电话拨号键盘字母组合(2170阅读)
- 密码强度检测器(3124阅读)
- 求列表平衡点(2498阅读)
- Hot:字符串统计(4581阅读)
- Hot:尼姆游戏(聪明版首发)(4135阅读)
- 尼姆游戏(优化版)(1968阅读)
推荐条件 点阅破千
回页首
精品文章:
- 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室
回页首
◆ Python 入门指南【Python 3.6.3】
好文力荐:
-
全栈领域优质创作者——寒佬(还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是学习的两大利器。
-
【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
-
靠谱程序员的好习惯
CSDN实用技巧博文:
- 8个好用到爆的Python实用技巧
- python忽略警告
- Python代码编写规范
- Python的docstring规范(说明文档的规范写法)