重庆大学第八届编程大赛初赛1、2题目
时间:2020-05-30
本文章向大家介绍重庆大学第八届编程大赛初赛1、2题目,主要包括重庆大学第八届编程大赛初赛1、2题目使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1
A. balls game
import math # 1. 从左到有遍历列表元素,发现数据组,第一个元素为正,第二个元素为负 # 判断是否会吃掉还是消除 def judge(one_list): if len(one_list) < 2: # 长度等于1的列表不需要传进来,需要提前判断 # print('error') return flag = False new_list=[] record_idx = [] for idx in range(len(one_list) - 1): # print(idx,one_list[idx]) if one_list[idx] > 0 and one_list[idx + 1] < 0: flag = True if math.fabs(one_list[idx]) == math.fabs(one_list[idx + 1]): record_idx.append(idx) record_idx.append(idx+1) elif math.fabs(one_list[idx]) > math.fabs(one_list[idx + 1]): record_idx.append(idx+1) elif math.fabs(one_list[idx]) < math.fabs(one_list[idx + 1]): record_idx.append(idx) for idx in range(len(one_list)): if idx not in record_idx: new_list.append(one_list[idx]) return flag, new_list case_num = int(input()) data_array = [] for i in range(case_num): data_array.append([float(ele.strip()) for ele in input().split(',')]) for one_list in data_array: flag = True while flag: if len(one_list) == 1 or len(one_list) == 0: flag = False break flag, one_list = judge(one_list) one_list.sort() print(' '.join(str(int(ele)) for ele in one_list), end='\n')
2.
B. Survive
if __name__ == "__main__": def my_sum(arr): s =0 for i in range(len(arr)): s += sum(arr[i]) return s def set_0(arr,idx,jdx): # print(idx, jdx) row = len(arr) col = len(arr[0]) arr[idx][jdx] =0 if idx == 0 : if jdx == 0: if arr[idx][jdx+1]==1: set_0(arr,idx,jdx+1) if arr[idx+1][jdx]==1: set_0(arr,idx+1,jdx) pass elif jdx==col-1: if arr[idx][jdx-1]==1: set_0(arr,idx,jdx-1) if arr[idx+1][jdx]==1: set_0(arr,idx+1,jdx) pass elif jdx>0 or jdx<col-1: if arr[idx][jdx-1]==1: set_0(arr,idx,jdx-1) if arr[idx][jdx + 1] == 1: set_0(arr, idx, jdx + 1) # print('ooo=', idx, jdx) if arr[idx+1][jdx] == 1: # print('dd=', idx,jdx) set_0(arr, idx+1, jdx + 1) elif idx==row-1: if jdx==0: if arr[idx][jdx + 1] == 1: set_0(arr, idx, jdx + 1) if arr[idx-1][jdx]==1: set_0(arr,idx-1,jdx) pass if jdx==col-1: if arr[idx-1][jdx] == 1: set_0(arr, idx-1, jdx) if arr[idx][jdx-1]==1: set_0(arr,idx,jdx-1) pass elif jdx > 0 or jdx < col - 1: if arr[idx-1][jdx] == 1: set_0(arr, idx-1, jdx) if arr[idx][jdx - 1] == 1: set_0(arr, idx, jdx - 1) if arr[idx][jdx+1]==1: set_0(arr,idx,jdx+1) elif idx>0 or idx<row-1: if jdx==0: if arr[idx][jdx + 1] == 1: set_0(arr,idx,jdx+1) if arr[idx-1][jdx ] == 1: set_0(arr,idx-1,jdx) if arr[idx+1][jdx ] == 1: set_0(arr,idx+1,jdx) pass elif jdx==col-1: if arr[idx][jdx - 1] == 1: set_0(arr,idx,jdx-1) if arr[idx-1][jdx ] == 1: set_0(arr,idx-1,jdx) if arr[idx+1][jdx ] == 1: set_0(arr,idx+1,jdx) pass elif jdx > 0 or jdx < col - 1: if arr[idx][jdx - 1] == 1: set_0(arr,idx,jdx-1) elif arr[idx][jdx + 1] == 1: set_0(arr,idx,jdx+1) elif arr[idx - 1][jdx] == 1: set_0(arr,idx-1,jdx) elif arr[idx + 1][jdx] == 1: set_0(arr,idx+1,jdx) return arr def judge(arr,arr_size): ''' :param data_array: 0-1 array :return: num, type:int ''' # 找到了1个连通区域之后,把该区域的1变为0,计算是否还有1 arr_sum = my_sum(arr) cnt = 0 while(arr_sum>0): for idx in range(arr_size[0]): for jdx in range(arr_size[1]): if arr[idx][jdx]==1: cnt += 1 set_0(arr,idx,jdx) arr_sum = my_sum(arr) result.append(cnt) print(cnt) pass case_num = int(input()) result = [] for i in range(case_num): data_i_size = [int(ele) for ele in input().split(' ')] # print(data_i_size) data_i=[] for j in range(data_i_size[0]): data_i.append([int(ele) for ele in input().split(',')]) # print(data_i) # todo 判斷有幾個聯通區域是1 judge(data_i, data_i_size)
原文地址:https://www.cnblogs.com/sunupo/p/12993870.html
- MongoDB系列6:MongoDB索引的介绍
- 文本数据处理的终极指南-[NLP入门]
- 神经网络思想建立LR模型(DL公开课第二周答案)
- 如何用卷积神经网络从歌曲中提取纯人声?这里有教程+代码
- 排序算法对比、总结(Python代码)
- 记一道未能答出的算法面试题
- 关于numpy mean函数的axis参数
- 在Keras+TF环境中,用迁移学习和微调做专属图像识别系统
- Tensorflow的LRN是怎么做的
- 存储Tensorflow训练网络的参数
- 用Ansible部署ELK STACK
- 十六个有用的Linux命令行技巧
- keras系列︱深度学习五款常用的已训练模型
- 基于VGG19的识别中国人、韩国人、日本人分类器
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android ScrollView嵌套横向滑动控件时冲突问题
- Android用户输入自动提示控件AutoCompleteTextView使用方法
- Android自定义View实现水波纹效果
- Android如何获取系统通知的开启状态详解
- Handler实现线程之间的通信下载文件动态更新进度条
- Android下Button实现图文混排效果
- android handler.post和handler.sendMessage的区别和联系
- 3小时带你开发一款商城类小程序(零基础入门小程序系列)
- Android 隐式Intent的实例详解
- Android编程使用加速度传感器实现摇一摇功能及优化的方法详解
- 微信小程序分页加载数据~上拉加载更多~小程序云数据库的分页加载
- TextView实现跑马灯效果 就这么简单!
- Android自带emoji表情的使用方法详解
- Android EditText实现输入表情
- Android编程实现使用Intent传输包含自定义类的ArrayList示例