GPLT2017题目

阅览室:
L1-043. 阅览室
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越
天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。

注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录。另外,题目保证书号是书的唯一标识,同一本书在任何时间区间内只可能被一位读者借阅。

输入格式:

输入在第一行给出一个正整数N(<= 10),随后给出N天的纪录。每天的纪录由若干次借阅操作组成,每次操作占一行,格式为:

书号([1, 1000]内的整数) 键值(“S”或“E”) 发生时间(hh:mm,其中hh是[0,23]内的整数,mm是[0, 59]内整数)

每一天的纪录保证按时间递增的顺序给出。

输出格式:

对每天的纪录,在一行中输出当天的读者借书次数和平均阅读时间(以分钟为单位的精确到个位的整数时间)。

输入样例:
3
1 S 08:10
2 S 08:35
1 E 10:00
2 E 13:16
0 S 17:00
0 S 17:00
3 E 08:10
1 S 08:20
2 S 09:00
1 E 09:20
0 E 17:00
输出样例:
2 196
0 0
1 60
题目不难 但是满分也不容易
要是拿满分 就需要考虑到两个S对同一本书一起出现的时候 这个时候在来个这个书的E就会导致这个书的归还问题 是按照前面的还是按照后面的 这里要算按照后面的才能拿满分

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node{int sh,sm;
}bok[1010];
int main()
{int t,c=0,time=0;cin>>t;memset(bok,-1,sizeof(bok));while(1){int num,h,m;char o;scanf("%d %c %d:%d",&num,&o,&h,&m);if(num==0){cout<<c<<" ";if(c!=0)cout<<(int)((double)time/c+0.5)<<endl;else cout<<0<<endl;c=0,time=0;t--;memset(bok,-1,sizeof(bok));//必须初始化 一开始忘记写了 就导致前一天借的书没还 影响到了下一天的正常借阅 每天要把借的书清零if(t==0)break;}if(o=='S'){if(bok[num].sh==-1){bok[num].sh=h,bok[num].sm =m;}elsebok[num].sh=h,bok[num].sm = m;//两个S同时出现取后面的}else {if(bok[num].sh!=-1){time += h*60+m-(bok[num].sh*60+bok[num].sm);bok[num].sh = -1;bok[num].sm = -1;c++;}}}return 0;
}

L2-021. 点赞狂魔
时间限制
200 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越
微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这种人就被称为“点赞狂魔”。他们点赞的标签非常分散,无法体现出明显的特性。本题就要求你写个程序,通过统计每个人点赞的不同标签的数量,找出前3名点赞狂魔。

输入格式:

输入在第一行给出一个正整数N(<=100),是待统计的用户数。随后N行,每行列出一位用户的点赞标签。格式为“Name K F1 … FK”,其中 Name 是不超过8个英文小写字母的非空用户名,1<=K<=1000,Fi(i=1, …, K)是特性标签的编号,我们将所有特性标签从1到107编号。数字间以空格分隔。

输出格式:

统计每个人点赞的不同标签的数量,找出数量最大的前3名,在一行中顺序输出他们的用户名,其间以1个空格分隔,且行末不得有多余空格。如果有并列,则输出标签出现次数平均值最小的那个,题目保证这样的用户没有并列。若不足3人,则用“-”补齐缺失,例如“mike jenny -”就表示只有2人。

输入样例:
5
bob 11 101 102 103 104 105 106 107 108 108 107 107
peter 8 1 2 3 4 3 2 5 1
chris 12 1 2 3 4 5 6 7 8 9 1 2 3
john 10 8 7 6 5 4 3 2 1 7 5
jack 9 6 7 8 9 10 11 12 13 14
输出样例:
jack chris john

这道题开始把107

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node{string name;int difn,k;double avg;
}p[120];
bool cmp(node a,node b){return a.difn>b.difn||(a.difn==b.difn&&a.avg<b.avg);
}
int main()
{int n;cin>>n;set<int>s;for(int i=1;i<=n;i++){string name;cin>>p[i].name>>p[i].k;int tmp = p[i].k;s.clear();while(tmp--){int t;cin>>t;s.insert(t);}p[i].difn = s.size();p[i].avg = (double)p[i].k/p[i].difn;}sort(p+1,p+1+n,cmp);int lim = min(3,n);for(int i=1;i<=lim;i++){cout<<p[i].name;if(i!=lim)cout<<" ";}int _ = 3-lim;for(int i=1;i<=_;i++){cout<<" -";}cout<<endl;return 0;
}

这道题一开始把1e7当成107做了 不过排序写对了就没问题了 开始没理解什么叫做标签的平均次数
原来就是用所有标签数量÷不同标签的数量。。。 其实就是不同标签个数相同的情况下,总个数小的排在前面,这里可以省略一次浮点运算。

L1-046. 整除光棍
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
翁恺
这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。

提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比如,程序输入31,那么就输出3584229390681和15,因为31乘以3584229390681的结果是111111111111111,一共15个1。

输入格式:

输入在一行中给出一个不以5结尾的正奇数x(< 1000)。

输出格式:

在一行中输出相应的最小的s和n,其间以1个空格分隔。

输入样例:
31
输出样例:
3584229390681 15

import java.math.BigInteger;
import java.util.Scanner;public class Main {public static void main(String[] args) {int x;Scanner sc = new Scanner(System.in);x = sc.nextInt();int tmp = x,cnt=0;String a = "";while(tmp!=0) {tmp/=10;a+="1";}BigInteger fac  = new BigInteger(x+"");BigInteger ten = new BigInteger("10");BigInteger ans = new BigInteger(a);ans.pow(cnt);if(ans.compareTo(fac)<0) {ans = ans.multiply(new BigInteger("10")).add(new BigInteger("1"));}while(!(ans.mod(fac).equals(BigInteger.ZERO))) {ans = ans.multiply(ten).add(BigInteger.ONE);}System.out.println(ans.divide(fac)+" "+ans.toString().length());}
}

当然也可以模拟除法 一开始想到模拟除法会用到高精度
但是仔细想一想输入数据不过万 那么我们在做除法的过程中 总是在用比这个数多一位的数在除 所以除数不会太大 也就没必要用高精度 因为这个数总是在用余数做除法

#include<bits/stdc++.h>
using namespace std;
char ans[10010];
int main(){int p=0,len=0,n=1,a;cin>>a;while(++len){if(p||n/a){//not first digit or n mod a ==0 ans[p++] = '0'+n/a;			}	//	cout<<len;	n=n%a;if(n==0){ans[p]='\0';printf("%s %d\n",ans,len);break;}n = n*10+1;}return 0;
}
  1. Read Number in Chinese (25)
    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    16000 B
    判题程序
    Standard
    作者
    CHEN, Yue
    Given an integer with no more than 9 digits, you are supposed to read it in the traditional Chinese way. Output “Fu” first if it is negative. For example, -123456789 is read as “Fu yi Yi er Qian san Bai si Shi wu Wan liu Qian qi Bai ba Shi jiu”. Note: zero (“ling”) must be handled correctly according to the Chinese tradition. For example, 100800 is “yi Shi Wan ling ba Bai”.
    Input Specification:
    Each input file contains one test case, which gives an integer with no more than 9 digits.
    Output Specification:
    For each test case, print in a line the Chinese way of reading the number. The characters are separated by a space and there must be no extra space at the end of the line.
    Sample Input 1:
    -123456789
    Sample Output 1:
    Fu yi Yi er Qian san Bai si Shi wu Wan liu Qian qi Bai ba Shi jiu
    Sample Input 2:
    100800
    Sample Output 2:
    yi Shi Wan ling ba Bai
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
string m[] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
string unit[] = {"Shi","Bai","Qian","Wan"};// 
int main()
{//1 2345 6789string a,ans;getline(cin,a);int tag=0,c0=0;bool f=0;if(a=="0")cout<<"ling"<<endl;else{if(a[0]=='-')ans+="Fu",tag++;for(;tag<a.length();tag++){int tmp = a[tag]-'0';int dig = a.length()-tag;if(tmp!=0){			if(tag!=0)ans+=" ";if(c0!=0){ans+=m[0],c0=0;ans+=" ",ans+=m[tmp];}else ans+=m[tmp];//unit  if(dig==9)ans+=" ",ans+="Yi",f=1;else if(dig==1)continue;else if(dig!=5)ans+=" ",ans+=unit[(dig-2+4)%4];}else {c0++;}if(dig==5){if(c0!=4)ans+=" ",ans+="Wan";//有万则加 无万不加 }}cout<<ans<<endl;} return 0;
}

注意测试点中有0的情况
中文的逻辑是每四位相同单位 第一个5位多加个万 如果前面不都是0 第二个5位多加个亿

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring各jar包的作用(转载)

spring.jar是包含有完整发布的单个jar 包&#xff0c;spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容&#xff0c;因为只有在开发环境下才会用到 spring-mock.jar来进行辅助测试&#xff0c;正式应用系统中是用不得这些类的。 除了spring.jar文件&am…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第15篇]RSA-OAEP和ECIES的密钥生成,加密和解密

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇总是为了让博士生们在第一年结束时知道些什么。通过描述RSA-OAEP和ECIES的密钥生成、加密和解密算法&#xff0c;我们回到了"more crypto" staff …

第二十六期:HTTP 3的前世今生及尝鲜

HTTP/3又迎来一个里程碑&#xff1a;近日Cloudflare官方宣其边缘网络上已全面提供QUIC和HTTP/3支持。那么HTTP/3可以带来哪些变化和优势呢? 对Internet的用户&#xff0c;并且通过浏览器和其他客户端与站点进行高效交互。 HTTP/3又迎来一个里程碑&#xff1a;近日Cloudflare官…

业务时间做开发,使用jeecg框架

最近想在业余时间做一个项目管理的应用给自己用&#xff0c;但自己业余时间又不多&#xff0c;所以就想找一个不用重复写基本代码&#xff08;例如bean、dao、service、action的增删改查&#xff09;&#xff0c;不用重复写jsp代码。这样&#xff0c;我选择了jeecg。它基本满足…

前端中标签页的手写方法

虽然流行用框架写出来 这里也可以用手写方法写出来 也并不是这么复杂 首先为了实现如下效果的标签 我们可以在前端把两个表直接输出出来 <table class "tag char" id "tagf" ><tr><td>Found</td><td>Found time</td&…

Redis中的执行命令的过程

在redis.c的initServerConfig()方法中&#xff0c;通过调用dictCreate方法初始化server端的命令表。这个命令表是一个hashtable,可以通过key找到相关的命令&#xff1a; /* Command table -- we initiialize it here as it is part of the* initial configuration, since comma…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第16篇]描述DSA、Schnorr和RSA-FDH的密钥生成、签名和验证算法。

这是一系列博客文章中最新的一篇&#xff0c;文章的主题是“做密码学每个博士生都应该知道的52件事”。这一系列问题是为了让博士生们在第一年结束时了解他们应该知道的事情。本周我们将介绍DSA、Schnorr和RSA-FDH的密钥生成、签名和验证算法。 1.DSA 2.Schnorr 3.RSA-FDH Refe…

nutch2.1在windows平台上使用eclipsedebug 存储在mysql的搭建过程

步骤1&#xff1a;准备好eclipse、eclipse svn插件、mysql准备好&#xff0c;mysql使用utf-8编码 步骤2&#xff1a;mysql建库&#xff0c;建表&#xff1a; CREATEDATABASEnutch ; CREATE TABLE webpage (id varchar(767) NOT NULL,headers blob,text mediumtext DEFAULT NULL…

(转)分布式锁的几种使用方式(redis、zookeeper、数据库)

https://blog.csdn.net/u010963948/article/details/79006572转载于:https://www.cnblogs.com/Andrew520/p/10663350.html

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第17篇]述和比较DES和AES的轮结构

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。这周&#xff0c;我们描述和比较DES和AES轮结构。 DES和AES都是迭代分组密码的例子.分组密码通过重复使用一个…

nutch2.1分布式抓取

在上一篇的基础上。 1准备环境&#xff1a;hadoop集群、java、mysql数据库&#xff0c;代码可以在eclipse中运行&#xff0c;可以单机模式下插入数据到mysql数据库。2修改配置文件nutch-site.xml&#xff1a;<property><name>plugin.folders</name><value…

AtCoder-2379 - 连接竹竿 思维 | 数学

Problem Statement Snuke has N integers. Among them, the smallest is A, and the largest is B. We are interested in the sum of those N integers. How many different possible sums there are? Constraints 1≤N,A,B≤109A and B are integers. Input Input is given…

UML用例图

统一建模语言&#xff08;Unified Modeling Language&#xff0c;UML&#xff09;又称标准建模语言&#xff0c;是始于1997年的一个OMG标准&#xff0c;它是一个支持模型化和软件系统开发的图形化语言&#xff0c;为软件开发的所有阶段提供模型化和可视化支持&#xff0c;包括由…

[剑指offer]面试题第[44]题[JAVA][数字序列中某一位的数字][找规律]

【问题描述】[中等] 【解答思路】 找规律 时间复杂度&#xff1a;O(logN) 空间复杂度&#xff1a;O(logN) class Solution {public int findNthDigit(int n) {int digit 1;long start 1;long count 9;while (n > count) { // 1.n - count;digit 1;start * 10;count di…

深度学习第五课-训练注意事项与框架使用

说明&#xff1a;本文是七月算法5月深度学习班第五次课听课笔记。黄色标注的部分为自己不太确定的部分。 训练 mini-batch SGD 神经网络使用mini-batch SGD训练得到最优权重。训练过程如下&#xff1a;&#xff08;以下参考了andrew ng的机器学习课程&#xff09;例如训练样本…

next_permutation算法(基于交换)

nextpermutation 算法 这个算法如何实现 我们要观察对于任意的123456 对于一个任意的字符串 我们如果要找他的下一个全排列 就应该变动其数字 使得其数值增大 且是最小的增大 那么仅使用以上数字 如何才能使其变大 但变大的数字 是所有变大范围内最小的可能 我们称其为 最小变大…

【Vue】【Router】手动跳转用 this.$router.push() 时 $router 未定义的问题

初入Vue&#xff0c;手写路由跳转时的问题&#xff1a; toXxxRoute: () > {this.$router.push({path: /xxx, name: xxx}) } 由于使用了箭头函数&#xff0c;this的指向与传统 js 里不同 所以报错 TypeError: Cannot read property $router of undefined 与其保持一个this变量…

[Letcode]第[34]题[JAVA][在排序数组中查找元素的第一个和最后一个位置][暴力][二分]

【问题描述】[中等] 【解答思路】 1. 线性扫描&#xff08;不符合题意&#xff09; 时间复杂度&#xff1a;O(N) 空间复杂度&#xff1a;O(1) class Solution {public int[] searchRange(int[] nums, int target) {int[] targetRange {-1, -1};// find the index of the lef…

习题2-3 求平方与倒数序列的部分和

本题要求对两个正整数m和n&#xff08;m≤n&#xff09;编写程序&#xff0c;计算序列和m​2​​1/m(m1)​2​​1/(m1)⋯n​2​​1/n。 输入格式: 输入在一行中给出两个正整数m和n&#xff08;m≤n&#xff09;&#xff0c;其间以空格分开。 输出格式: 在一行中按照“sum S”的…

用对拍程序来debug错误程序的错误数据

对拍就是通过把自己写的程序的结果和一个完全正确的程序结果进行比较 从而得出自己写的错误程序的漏洞 比如这道题 24点游戏 EOlymp - 44 The number of ones In arithmetic expression you are allowed to use the number 1, operations of addition, multiplication and …