TOJ5398: 签到大富翁(简单模拟) and TOJ 5395: 大于中值的边界元素(数组的应用)...
Python代码!!!
5395 传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=5395
5398传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=5398
5395:大于中值的边界元素
时间限制(普通/Java):1000MS/3000MS 内存限制:65536KByte
描述
给定一个二维数组,求二维数组的边界元素中,大于二维数组“中值”的元素个数。这里的“中值”定义为一个元素序列中:
(1)当元素个数为奇数时,即为中间大的元素;
(2)当元素个数为偶数时,为中间大的两个元素的平均值。
输入
第一行为两个元素n和m,表示二维数组的行数和列数。
接下来又n行,每行m个整数,表示数组元素值。
1<=n,m<=100。
输出
输出大于中值的元素个数。
样例输入
3 3
1 2 3
2 3 1
4 1 5
样例输出
3
提示
中值为2,因此边界元素中大于2的元素个数为3个。
思路:
因为题目要求中位数,所以不知道整个数组是奇数个还是偶数个的情况下,还是直接把数组元素都用float存储比较好。
然后就是存的时候可以浪费一下空间,存一个二维数组,另外再把所有元素存到一个一维数组,这样找中位数方便一点。
然后比较就是比较四个边上的元素和中位数比较。easy!
if __name__ == "__main__":n ,m = map(int,input().split())a,b,sum = [[0 for i in range(m)]for j in range(n)],[],0for i in range(n):a[i] = input().split()for j in range(m):a[i][j] = float(a[i][j])b.append(a[i][j])b.sort()num = float(b[len(b)//2]) if len(b)%2==1 else (b[len(b)//2+1]+b[len(b)//2])/2for i in range(n):for j in range(m):if i == 0 or j == 0 or i == n-1 or j == m - 1:if a[i][j] > num: sum += 1print(sum)
TOJ5398: 签到大富翁
时间限制(普通/Java):1000MS/3000MS 内存限制:65536KByte
台州移动有一个活动叫做“签到大富翁”,用户签到后可以得到“掷骰子”的机会,根据用户掷骰子的点数,可以到达某个方格,从而获得相应的奖励。但有些格子可能会倒退或前进一步,最终到达了另一个格子。现在请你根据掷骰子的点数确定能获什么奖励。
为简化起见,这里只需要输出对应格子的数字即可(具体实现这个游戏时,你可以根据该数字确定奖品类型)。
输入
输入数据的第一行为整数n(n<=50),表示地图中的格子数目。
第二行为n个整数,表示格子中的数字值,如果为-1,表示后退一步,如果为1表示前进一步,其他数字对应奖品或无奖品,每次掷骰子最多只能前进或倒退一次。
第三行为整数m(m<=10),表示玩家可以掷骰子的次数。
第四行为m个整数,表示玩家分别掷出的骰子点数(1~6之间)。
玩家总是从第一个格子出发,当到达终点时(掷骰子点数超出终点也将停留在终点),下一次掷骰子将重新从起点出发。
输出
输出每次掷骰子所到达格子的对应数字值,每行一个。
样例输入
10
0 1 2 -1 3 4 2 1 5 0
3
3 2 5
样例输出
2
3
0
思路:直接模拟就好了,注意一下,进一步和退一步,只能执行一次!
7
0 5 4 1 -1 1 0
3
5 4 3
输出:
0
1
0
代码:
if __name__ == "__main__":n,str= input(),input()a = [int(i) for i in str.split()]n,str= input(),input()b = [int(i) for i in str.split()]ard ,f=0,0for i in range(len(b)):ard += b[i]if ard >= (len(a)-1): f,ard = 1,len(a)-1if a[ard] == 1:ard+=1elif a[ard] == -1:ard-=1if ard >= (len(a)-1): f,ard = 1,len(a)-1print(a[ard])if f == 1:ard,f=0,0
转载于:https://www.cnblogs.com/Esquecer/p/8548722.html
TOJ5398: 签到大富翁(简单模拟) and TOJ 5395: 大于中值的边界元素(数组的应用)...相关推荐
- 【Python】简单实现显示图片的高斯和中值滤波效果
1.代码 import cv2 import numpy as np import matplotlib.pyplot as pltimg=cv2.imread('./jiaoyan.jpg',0)# ...
- ASP.NET中DropDownList控件的简单使用--DDL绑定数据库表中值,选择DDL中值直接检索数据...
1.在.aspx页面拖入DropDownList控件 <label class="txt-green">校区:</label> <asp:DropDo ...
- IoC容器总结与简单模拟
IoC容器总结与简单模拟 当一个组件需要外部资源时,最直接也最明智的方法是执行查找,这种行为称为主动查找.但这种查找存在一个缺点--组件需要知道如何获得资源.那么它的解决方案是什么呢?请看下文. AD ...
- 使用动态代理简单模拟一下spring的事务管理
按照平时写代码的习惯,我们会定义一个service接口 package com.proxy.test; public interface UserService {public void sayHel ...
- 7-18 银行业务队列简单模拟 (25 分)
7-18 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达 ...
- Jmeter简介以及简单模拟性能测试
1.Jemter简介 1.我们为什么使用Jmeter 开源,免费,基于Java编写,可集成到其他系统可拓展各个功能插件 支持接口测试, 压力(负载和压力)测试等多种功能,支持录制回放, 入门简单相较于 ...
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...
- 银行业务队列简单模拟 (25 分)c语言c++
7-2 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达银 ...
- NYOJ 题目77 开灯问题(简单模拟)
开灯问题 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯 ...
最新文章
- 帮腾讯云拿下行业第一的程序员们,不穿格子衫和人字拖
- Android数据库 分页查询,Android之怎么使用SQLite数据库(增、删、改、查、分页等)以及ListView显示数据(转)...
- deferred对象
- 我和ASP.NET MVC有个约会
- Socket通信学习(一):Socket通信原理
- 产品经理|竞品分析(附《竞品分析报告》模板)
- Windows 有哪些冷门但是非常值得推荐的软件?
- 《系统集成项目管理》第十六章 变更管理
- 毕业论文知网查重心得体会——吐血奉献
- 1寸2寸3寸5寸6寸8寸10寸照片的具体尺寸(附常用照片尺寸对照表)
- Handing Incomplete Heterogeneous Data using VAEs
- Win8Metro(C#)数字图像处理--2.26图像减法
- 操作系统课设之单线程版
- Codeforces 854 B Maxim Buys an Apartment
- 服务器购买之后要做什么(二)
- mac node如何升级版本
- Webpack 常用知识点总结
- android wifi p2p框架,7.2.1 P2P架构
- Ubuntu三步配置scrcpy,实现手机投屏和控制
- oralc clob 解析内容