[编程题] 奖学金 路灯
来源:互联网 发布:增值税发票模拟软件 编辑:程序博客网 时间:2024/05/18 00:12
一.奖学金
小v今年有n门课,每门都有考试,为了拿到奖学金,小v必须让自己的平均成绩至少为avg。每门课由平时成绩和考试成绩组成,满分为r。现在他知道每门课的平时成绩为ai ,若想让这门课的考试成绩多拿一分的话,小v要花bi 的时间复习,不复习的话当然就是0分。同时我们显然可以发现复习得再多也不会拿到超过满分的分数。为了拿到奖学金,小v至少要花多少时间复习。
输入描述:
第一行三个整数n,r,avg(n大于等于1小于等于1e5,r大于等于1小于等于1e9,avg大于等于1小于等于1e6),接下来n行,每行两个整数ai和bi,均小于等于1e6大于等于1
输出描述:
一行输出答案。
输入例子:
5 10 90 59 18 10 19 100
输出例子:
43
= = 一开始没写whle(scanf()!=EOF)一直出错,还不知道为什么。后来看了下说明才发现。
#include<stdio.h>#include<algorithm>struct x_t{ int a; int b;}x[100005];bool cmp(const struct x_t& t1 ,const struct x_t& t2){ return t1.b < t2.b;}int main(){ int n,r,avg; while(scanf("%d %d %d",&n,&r,&avg)!=EOF){ int score = 0; for(int i=0;i<n;i++){ scanf("%d %d",&x[i].a,&x[i].b); score += x[i].a; } std::sort(x,x+n,cmp); int dif; dif = n*avg - score; if(dif<0){ printf("0\n"); continue; } long long time = 0; for(int i=0;i<n;i++){ int d = r-x[i].a; if(dif-d<=0){ time += dif*x[i].b; break; } time += d*x[i].b; dif -= d; } printf("%lld\n",time); } return 0;}
二.路灯
一条长l的笔直的街道上有n个路灯,若这条街的起点为0,终点为l,第i个路灯坐标为ai,每盏灯可以覆盖到的最远距离为d,为了照明需求,所有灯的灯光必须覆盖整条街,但是为了省电,要是这个d最小,请找到这个最小的d。
输入描述:
每组数据第一行两个整数n和l(n大于0小于等于1000,l小于等于1000000000大于0)。第二行有n个整数(均大于等于0小于等于l),为每盏灯的坐标,多个路灯可以在同一点。
输出描述:
输出答案,保留两位小数。
输入例子:
7 1515 5 3 7 9 14 0
输出例子:
2.50
#include<stdio.h>#include<algorithm>int a[1005];int main(){ int n,l; while(scanf("%d %d",&n,&l)!=EOF){ for(int i=0;i<n;i++){ scanf("%d",&a[i]); } std::sort(a,a+n); float max = 0; for(int i=0;i<n-1;i++){ int dif = a[i+1] - a[i]; float ans = 1.0*dif/2; if(ans>max){ max = ans; } } if(a[0]>max){ max = a[0]; } if(l-a[n-1]>max){ max = l-a[n-1]; } printf("%.2f\n",max); }}
三.小易的编程之路
小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3...bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能增加bi 与c的最大公约数.那么问题来了,在一系列的锻炼后,小易的最终能力值为多少?
输入描述:
对于每组数据,第一行是两个整数n(1≤n<100000)表示怪物的数量和a表示小易的初始能力值.第二行n个整数,b1,b2...bn(1≤bi≤n)表示每个怪物的防御力
输出描述:
对于每组数据,输出一行.每行仅包含一个整数,表示小易的最终能力值
输入例子:
3 5050 105 2005 2030 20 15 40 100
输出例子:
110205
#include<stdio.h>int b[100005];int f(int x,int y){ while(y){ int t=y; y=x%y; x=t; } return x;}int main(){ int n,a; while(scanf("%d %d",&n,&a)!=EOF){ for(int i=0;i<n;i++){ scanf("%d",&b[i]); } for(int i=0;i<n;i++){ if(a<b[i]){ a += f(a,b[i]); } else{ a += b[i]; } } printf("%d\n",a); }}
四.炮台攻击
兰博教训提莫之后,然后和提莫讨论起约德尔人,谈起约德尔人,自然少不了一个人,那 就是黑默丁格------约德尔人历史上最伟大的科学家. 提莫说,黑默丁格最近在思考一个问题:黑默丁格有三个炮台,炮台能攻击到距离它R的敌人 (两点之间的距离为两点连续的距离,例如(3,0),(0,4)之间的距离是5),如果一个炮台能攻击 到敌人,那么就会对敌人造成1×的伤害.黑默丁格将三个炮台放在N*M方格中的点上,并且给出敌人 的坐标. 问:那么敌人受到伤害会是多大?
输入描述:
第一行9个整数,R,x1,y1,x2,y2,x3,y3,x0,y0.R代表炮台攻击的最大距离,(x1,y1),(x2,y2),(x3,y3)代表三个炮台的坐标.(x0,y0)代表敌人的坐标.
输出描述:
输出一行,这一行代表敌人承受的最大伤害,(如果每个炮台都不能攻击到敌人,输出0×)
输入例子:
1 1 1 2 2 3 3 1 2
输出例子:
2x
#include<stdio.h>int main(){ int r,x1,y1,x2,y2,x3,y3,x0,y0; while(scanf("%d %d %d %d %d %d %d %d %d" ,&r,&x1,&y1,&x2,&y2,&x3,&y3,&x0,&y0)!=EOF){ int damage = 0; if((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1)<=r*r){ damage += 1; } if((x0-x2)*(x0-x2)+(y0-y2)*(y0-y2)<=r*r){ damage += 1; } if((x0-x3)*(x0-x3)+(y0-y3)*(y0-y3)<=r*r){ damage += 1; } printf("%dx\n",damage); }}
五.扫描透镜
在N*M的草地上,提莫种了K个蘑菇,蘑菇爆炸的威力极大,兰博不想贸然去闯,而且蘑菇是隐形的.只 有一种叫做扫描透镜的物品可以扫描出隐形的蘑菇,于是他回了一趟战争学院,买了2个扫描透镜,一个 扫描透镜可以扫描出(3*3)方格中所有的蘑菇,然后兰博就可以清理掉一些隐形的蘑菇. 问:兰博最多可以清理多少个蘑菇?
注意:每个方格被扫描一次只能清除掉一个蘑菇。
输入描述:
第一行三个整数:N,M,K,(1≤N,M≤20,K≤100),N,M代表了草地的大小;接下来K行,每行两个整数x,y(1≤x≤N,1≤y≤M).代表(x,y)处提莫种了一个蘑菇.一个方格可以种无穷个蘑菇.
输出描述:
输出一行,在这一行输出一个整数,代表兰博最多可以清理多少个蘑菇.
#include<stdio.h>#include<stdlib.h>#include<string.h>int a[25][25];int dx[] = {-1,0,1,-1,0,1,-1,0,1};int dy[] = {-1,0,1,1,-1,0,0,1,-1};int main(){ int n,m,k; while(scanf("%d %d %d",&n,&m,&k)!=EOF){ memset(a,0,sizeof(a)); for(int i=0;i<k;i++){ int x,y; scanf("%d %d",&x,&y); a[x][y]++; } int ans = 0; for(int times=0;times<2;times++){ int max = 0; int count; int index_i = 0 ,index_j = 0; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ count = 0; for(int t=0;t<9;t++){ if(a[i+dx[t]][j+dy[t]]>0)count++; } if(count>max){ max = count; index_i = i; index_j = j; } } } for(int t=0;t<9;t++){ if(a[index_i+dx[t]][index_j+dy[t]]>0){ a[index_i+dx[t]][index_j+dy[t]]--; ans++; } } } printf("%d\n",ans); }}
- [编程题] 奖学金 路灯
- [编程题]路灯
- 网易——奖学金、路灯
- [编程题]奖学金
- [编程题]奖学金
- 编程题——马路上的路灯
- 网易2016研发工程师编程题:路灯 [python]
- C++ 基础编程 路灯问题
- 网易笔试题 路灯
- 算法题:路灯
- 路灯
- 路灯
- 路灯
- 路灯
- 路灯
- 路灯
- 路灯
- 路灯
- 用Ionic2.0写第一个WebApp
- 本地依赖包查找不到
- ORACLE 11G双节点RAC配置单实例DG
- 《Head First Python》 第九章——如何将sqlite数据库集成到web应用中
- springMvc jmeter 典型请求
- [编程题] 奖学金 路灯
- Meteor开发环境的搭建及简单实用
- 最初TWInClose3算法20170214
- Airbnb-Lottie-android
- 链表快排
- 如何编辑pdf文件并添加文本内容
- #pragma once与#ifndef的区别
- Android/Linux/大数据/前端 知识库
- thinkphp 引入第三方类库的方法