2022-1-12

2022-1-12,第1张

2022-1-12 第12届【考生须知】 考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。 考试时间为 4 小时。考试期间选手可浏览自己已经提交的答案,被浏览的 答案允许拷贝。时间截止后,将无法继续提交或浏览答案。 对同一题目,选手可多次提交答案,以最后一次提交的答案为准。 选手必须通过浏览器方式提交自己的答案。选手在其它位置的作答或其它 方式提交的答案无效。 试题包含“结果填空”和“程序设计”两种题型。 结果填空题 :要求选手根据题目描述直接填写结果。求解方式不限。不要 求源代码。把结果填空的答案直接通过网页提交即可,不要书写多余的内容。 程序设计题 :要求选手设计的程序对于给定的输入能给出正确的输出结果。 考生的程序只有能运行出正确结果才有机会得分。 注意: 在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。 选手的程序必须是通用的,不能只对试卷中给定的数据有效。 对于编程题目,要求选手给出的解答完全符合 GNU C/C++ 标准,不能使 用诸如绘图、Win32API、中断调用、硬件 *** 作或与 *** 作系统相关的 API。 代码中允许使用 STL 类库。 注意: main 函数结束必须返回 0 注意: 所有依赖的函数必须明确地在源文件中 #include ,不能通 过工程设置而省略常用头文件。 所有源码必须在同一文件中。调试通过后,拷贝提交。 提交时,注意选择所期望的编译器类型。

编程大题最后一定要写 return 0;否则0分呀。

万能头文件: #include 包含了目前c++所包含的所有头文件!!!!

但也可能编译时间过长不通过吧,酌情使用吧,平时尽量不要吧。

常用头文件:

保持小数点后n位输出:

包含在头文件

cout<

头文件

string a; 字符个数:a.size();下标0到a.size()-1

①【问题描述】 对于一个 n个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。例如:

例如,6 边形:15个交点;输入3:输出:0

输入格式

输入只有一行一个整数 n,代表边数。

输出格式

输出一行一个整数代表答案。

说明/提示

数据规模与约定

对于 50% 的数据,保证 3≤n≤100。对于 100% 的数据,保证 10^53≤n≤105。

分析:

任何三条对角线都不会交于一点-->任意一个交点只有两条对角线(四个顶点)即四个顶点确定一个交点-->问题转化为从n个顶点中取四个= n * (n-1) * (n-2) * (n-3) / 24;

考虑到分子可能很大内存不够-->采用一种化简的技巧

于是原式可以化为:n * (n-1) / 2 * (n-2) / 3 * (n-3) / 4

由于n和n-1中有一个必然是2的倍数,3,4同理,因此不会出现除不尽的情况。

代码实现:

#include 
using namespace std;
int main()
{
    unsigned long long n;
    cin>>n;
    cout< 
②题目描述 

yyy 的学校要求早上 8 点前到达。学校到 yyy 的家一共有 s(sle 10000)s(s≤10000) 米,而 yyy 可以以 v(v<10000)v(v<10000) 米每分钟的速度匀速走到学校。此外在上学路上它还要额外花 10 分钟时间进行垃圾分类。请问为了避免迟到 yyy 最晚什么时候出门?输出 HH:MM 的时间格式,不足两位时补零。由于路途遥远, yyy 可能不得不提前一天出发,不过不可能提前超过一天。

输入格式

两个正整数 s,v,意思已经在题目中给定。

输出格式

hh:mm 表示最晚离开家的时间(时:分,必须输出两位,不足两位前面补0)

输入输出样例

输入 :100 99  输出: 07:48

注意事项:

1. 虽然题目中说s与v是整数,但如果s/v除不尽时,需要向上取整,否则会迟到,为了向上取整函数结果正确需将s,v变量设为小数类型;

2. 由于s与v中的时间单位为分,所以我们直接将8点(小时)换算成分钟8*60;

3. 由于题目说可能提前一天出发,所以把该时间减去行走时间和垃圾分类后,需要判断剩下的时间是否大于0,大于0则说明没有提前,则可以格式化输出;若小于0,需要加上24*60min后在格式化输出;

4. 格式化输出:时:时间/60;分钟:时间%60;都需判断是否超过10。

代码实现:

#include 
#include 
using namespace std;
int main()
{
    int time=8*60;//将8点换算成分钟
    double s, v;//这样使用向上取整函数才有效
    int a, b, t;
    cin>>s>>v; 
    t = ceil(s/v)+10;//除不尽时需要向上取整,否则会迟到
    time -= t;
    if(time < 0)
        time += 24*60;
    b = time % 60;//min
    a = time / 60;//hour
    if(a < 10){
        if(b < 10)  cout<<"0"<

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5702707.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存