1 我的账本

当前疫情防控形势严峻,学校为了减少同学们因为吃饭造成的聚集,规定一个寝室每次派个代表出去买饭,小W寝室的6人(编号1-6)决定每次抽签派一个人去买6份同样的套餐。但是每次买完饭后立刻转账又比较麻烦,于是他们约定每次去买饭的人先垫付,等疫情结束后再统一结算。

现在给你宿舍封闭管理期间的n顿饭中每次买饭人的序号和每份饭的单价,问疫情结束后每个人关于饭钱的收支状况?

输入格式:

第一行一个正整数n,表示有n顿饭
下面n行,第i行两个正整数x,y表示第i顿饭由x去买饭,每份饭单价y元。

输出格式:

一行六个整数表示每个人欠别人的钱或者别人欠他的钱。
如果他欠了别人钱,输出负数。
如果别人欠他的钱,输出正数 。

输入样例:

3
1 5
2 10
3 5

输出样例:

10 40 10 -20 -20 -20

注意行末不能有多余空格

样例解释1

1号欠2号5元,不欠3号,4号、5号、6号各欠1号5元,故1号输出10
1号、3号欠2号5元,4号、5号、6号各欠2号10元,故2号输出40
3号与1号同理
4号欠1号5元,欠2号10元,欠3号5元,故4号为-20
5号、6号与4号同理

数据范围与提示

1≤n≤21
1≤x≤6
4≤y≤15

源代码

map对应存储

#include <iostream>
#include <map>//map容器对应存储
using namespace std;
map<int,int> NUM;
int main()
{//依次存储1号-6号室友的钱钱状况 NUM[1]=0;NUM[2]=0;NUM[3]=0;NUM[4]=0;NUM[5]=0;NUM[6]=0;int n;cin>>n;while(n--){int num,money;//输入对应号码和钱钱 cin>>num>>money;//当某个大怨种买饭时,其与室友除了他本身都欠他一顿饭钱 for(int i = 1;i <= 6;i ++ ){if(i==num)NUM[i]+=money*5;//加上大怨种的所应收的欠款 else NUM[i]-=money;//其余室友加上所欠钱钱(负数) }}//从1号-6号依次输出每个人的钱钱状况 for(int i = 1;i <= 6;i ++ ){if(i==1)cout<<NUM[i];else cout<<' '<<NUM[i];}//注意格式的调整即末尾无空格 return 0;
}

2 核酸检测扫码

受疫情影响,小明同学现在每天需要下楼进行核酸检测。检测时,需要先用郑好办 APP 扫描二维码并填写个人信息以便统计核酸检测结果。

小明对于二维码的构造很是好奇。据了解,二维码中的黑白可以用来表示二进制中的 0/1 。且二维码的左上角,右上角,左下角有三个形态固定的特殊方阵,用做扫码时的位置标定。通过确定这三个特殊方阵的位置,进而确定整个二维码图形在照片中的位置。除了这三个特殊方阵外,其他位置的 0/1 取值由特定方法产生,表示扫描二维码后的交互动作内容。

小明现在重点关注二维码图像中的特殊方阵,想定位仅有的三个特殊方阵。为了简化问题,你可以将二维码视为n∗m的 01 方阵,将用于标定的特殊方阵视为 8×8 的方阵,其形态如下:

11111111
10000001
10111101
10111101
10111101
10111101
10000001
11111111

现在为了安全起见,二维码标定用的三个特殊矩阵不再位于原方阵的三个角上,而是随机的分布在原方阵内(仍然保证特殊方阵之间不会相互重叠),请你找出这三个特殊方阵的位置(每个特殊方阵左上角的坐标)。

输入格式:

第一行n m,表示二维码对应01矩阵的大小(0<n,m≤1000)
第二行起,给出n行m列的01矩阵

输出格式:

输出共 3 行,每行两个整数,分别代表一个特殊方阵左上角所位于的行编号和列编号(行编号从上向下数分别是 0, 1, 2, 3, ...;列编号从左向右数分别是 0, 1, 2, 3, ...)。三组坐标将行编号作为第一关键字,列编号作为第二关键字升序排序后输出。

输入样例:

20 20
11111111100111111111
10000001011010000001
10111101111110111101
10111101111110111101
10111101111110111101
10111101000010111101
10000001101110000001
11111111001111111111
11111000110000010111
11110000011100010010
00111011000101011101
00110011010001110001
11111111100010100000
10000001110101001101
10111101010100000101
10111101010111100000
10111101000011111001
10111101001111001001
10000001111100000011
11111111110110001001

输出样例:

0 0
0 12
12 0

源代码

图解

即遍历元素周围四个元素模块的右,下,和右下

#include <iostream>
#include <vector>//动态数组存储解
#include <algorithm>//调用sort函数用于动态结构体数组排序
using namespace std;
struct idx//结构体存储解的坐标
{int x,y;
};
vector<idx> A;//开辟动态数组
const int N = 1000+10;
char g[N][N];//创建二维字符用于储存
int cmp(struct idx &A,struct idx &B)//自定义cmp函数来对于sort排序依据重定义
{if(A.x!=B.x)return A.x<B.x;//首先按照行升序排 else if(A.y!=B.y)return A.y<B.y;//行相同按照列升序排
}
int main()
{//对于图进行存储 int n,m;cin>>n>>m;for(int i = 0;i < n;i ++ ){for(int j = 0;j < m;j ++ ){cin>>g[i][j];}}//遍历图 for(int i = 0;i < n;i ++ ){for(int j = 0;j < m;j ++ ){//我们所要查找的是图中某个元素的右、下,右下元素块是否符合规则 if(g[i][j]=='1'&&g[i+1][j]=='1'&&g[i][j+1]=='1'&&g[i+1][j+1]=='0'){//若符合规则则查其右面的四个元素是否符合 if(g[i][j+7]=='1'&&g[i][j+6]=='1'&&g[i+1][j+7]=='1'&&g[i+1][j+6]=='0'){//若符合规则则查其下面的四个元素是否符合规则 if(g[i+7][j]=='1'&&g[i+7][j+1]=='1'&&g[i+6][j]=='1'&&g[i+6][j+1]=='0'){//若符合规则则查其右下的四个元素是否符合规则 if(g[i+7][j+7]=='1'&&g[i+7][j+6]=='1'&&g[i+6][j+7]=='1'&&g[i+6][j+6]=='0'){//存储解 A.push_back({i,j});}}}}}}//对于解进行排序 sort(A.begin(),A.end(),cmp);for(int i = 0;i < A.size();i ++ ){if(i==0)cout<<A[i].x<<' '<<A[i].y;else cout<<endl<<A[i].x<<' '<<A[i].y;}//注意最后一组解之后无回车 return 0;
}

3 辛苦的楼长

疫情防控期间,要尽最大努力的保障同学们饮食!楼长们正在统计订饭的人数,一共是三个园区的统计表放在了一个文档里,有一些粗心的同学没有分清园区,错误的将自己的信息填到了其他园区的统计表上。身为帮助楼长的热心同学,你需要写一个程序将所有同学分到正确的园区并统计各个园区需要准备的早饭、午饭、晚饭的份数。

输入格式:

三组数据,每一组代表错误的园区的统计表。

每一组数据第一行是这个统计表上的信息数目n。
该组数据第2行到第n+1行是具体的信息,分别是:宿舍楼(格式为“园区(拼音,松:song,菊:jv,柳:liu)+楼号(数字)”中间无空格,例如“jv4”就表示菊园四号楼),宿舍号,早饭订饭数量,午饭订饭数量,晚饭订饭数量(某个寝室的信息只提交一次,不会重复)。

输出格式:

三组数据,分别代表三个园区的数据状况,按照“松-菊-柳”的顺序输出。

每组数据第一行有四个数,分别是该园区实际订餐的寝室数目,该园区总共订的早餐数目,午餐数目,晚餐数目。

然后输出该园区的所有正确的订单信息,排序输出(保证楼号非递减输出,若是楼号相同的订单则按找寝室号递增输出)。

输入样例:

在这里给出一组输入。例如:

4
song6 321 1 2 1
jv4 422 6 6 6
liu2 211 4 5 3
jv1 331 1 5 4
1
song2 333 6 6 6
1
jv6 612 2 3 3

输出样例:

2 7 8 7
song2 333 6 6 6
song6 321 1 2 1
3 9 14 13
jv1 331 1 5 4
jv4 422 6 6 6
jv6 612 2 3 3
1 4 5 3
liu2 211 4 5 3

数据范围

楼号保证在范围[0-9],房号范围为(100~999),订餐数目总数小于1000,每个园区订餐信息不超过20条。

源代码

纯纯暴力朴素无华

#include <iostream>
#include <vector>//动态数组用于创建动态结构体数组
#include <algorithm>//排序
#include <string.h>//查找字符子串
using namespace std;
struct PLACE
{string name;//宿舍楼名 int num;//寝室号 int bre;//早餐 int lun;//中餐 int din;//晚餐
};
vector<PLACE> A;//存松
vector<PLACE> B;//存柳
vector<PLACE> C;//存菊
int cmp(struct PLACE &X,struct PLACE &Y)//自定义重置sort排序函数
{if(X.name!=Y.name)return X.name<Y.name;//首先按照园区楼号递增 else if(X.num!=Y.num)return X.num<Y.num;//其次按照寝室号递增
}
int sum1bre=0,sum1lun=0,sum1din=0;//松早中晚餐总数
int sum2bre=0,sum2lun=0,sum2din=0;//柳早中晚餐总数
int sum3bre=0,sum3lun=0,sum3din=0;//菊早中晚餐总数
int main()
{int n;//第一次 cin>>n;while(n--){string name;int num;int bre;int lun;int din;cin>>name>>num>>bre>>lun>>din;if(name.find("song")!=-1)//若属于松 {A.push_back({name,num,bre,lun,din});//存入 //早中晚餐累加求和 sum1bre+=bre;sum1lun+=lun;sum1din+=din;}else if(name.find("jv")!=-1)//若属于柳 {B.push_back({name,num,bre,lun,din}); //早中晚餐累加求和sum2bre+=bre;sum2lun+=lun;sum2din+=din;}else if(name.find("liu")!=-1)//若属于菊 {C.push_back({name,num,bre,lun,din});//早中晚餐累加求和sum3bre+=bre;sum3lun+=lun;sum3din+=din;}}cin>>n;while(n--){string name;int num;int bre;int lun;int din;cin>>name>>num>>bre>>lun>>din;if(name.find("song")!=-1){A.push_back({name,num,bre,lun,din});//若属于松  //早中晚餐累加求和sum1bre+=bre;sum1lun+=lun;sum1din+=din;}else if(name.find("jv")!=-1){B.push_back({name,num,bre,lun,din});//若属于柳 //早中晚餐累加求和sum2bre+=bre;sum2lun+=lun;sum2din+=din;}else if(name.find("liu")!=-1){C.push_back({name,num,bre,lun,din});//若属于菊//早中晚餐累加求和sum3bre+=bre;sum3lun+=lun;sum3din+=din;}}cin>>n;while(n--){string name;int num;int bre;int lun;int din;cin>>name>>num>>bre>>lun>>din;if(name.find("song")!=-1){A.push_back({name,num,bre,lun,din});//若属于松  //早中晚餐累加求和sum1bre+=bre;sum1lun+=lun;sum1din+=din;}else if(name.find("jv")!=-1){B.push_back({name,num,bre,lun,din});//若属于柳 //早中晚餐累加求和sum2bre+=bre;sum2lun+=lun;sum2din+=din;}else if(name.find("liu")!=-1){C.push_back({name,num,bre,lun,din});//若属于菊//早中晚餐累加求和sum3bre+=bre;sum3lun+=lun;sum3din+=din;}}//首先输出松的解的个数和早中晚餐总份数 cout<<A.size()<<' '<<sum1bre<<' '<<sum1lun<<' '<<sum1din<<endl;//对于其中数据排序 sort(A.begin(),A.end(),cmp);for(int i = 0;i < A.size();i ++ ){if(i==0)cout<<A[i].name<<' '<<A[i].num<<' '<<A[i].bre<<' '<<A[i].lun<<' '<<A[i].din;else if(i==A.size()-1)cout<<endl<<A[i].name<<' '<<A[i].num<<' '<<A[i].bre<<' '<<A[i].lun<<' '<<A[i].din<<endl;else cout<<endl<<A[i].name<<' '<<A[i].num<<' '<<A[i].bre<<' '<<A[i].lun<<' '<<A[i].din;}//首先输出柳的解的个数和早中晚餐总份数 cout<<B.size()<<' '<<sum2bre<<' '<<sum2lun<<' '<<sum2din<<endl;//对于其中数据排序 sort(B.begin(),B.end(),cmp);for(int i = 0;i < B.size();i ++ ){if(i==0)cout<<B[i].name<<' '<<B[i].num<<' '<<B[i].bre<<' '<<B[i].lun<<' '<<B[i].din;else if(i==B.size()-1)cout<<endl<<B[i].name<<' '<<B[i].num<<' '<<B[i].bre<<' '<<B[i].lun<<' '<<B[i].din<<endl;else cout<<endl<<B[i].name<<' '<<B[i].num<<' '<<B[i].bre<<' '<<B[i].lun<<' '<<B[i].din;}//首先输出菊的解的个数和早中晚餐总份数 cout<<C.size()<<' '<<sum3bre<<' '<<sum3lun<<' '<<sum3din<<endl;//对于其中数据排序 sort(C.begin(),C.end(),cmp);for(int i = 0;i < C.size();i ++ ){if(i==0)cout<<C[i].name<<' '<<C[i].num<<' '<<C[i].bre<<' '<<C[i].lun<<' '<<C[i].din;else if(i==C.size()-1)cout<<endl<<C[i].name<<' '<<C[i].num<<' '<<C[i].bre<<' '<<C[i].lun<<' '<<C[i].din;else cout<<endl<<C[i].name<<' '<<C[i].num<<' '<<C[i].bre<<' '<<C[i].lun<<' '<<C[i].din;}//注意对于输出格式进行调整 return 0;
}

4 等待做核酸

最近新一轮新冠疫情来势汹汹,形势极为严峻,为了保障全体师生的安全,在校师生需要每天做核酸。每天医护人员到达的时间都是不固定的,为了简化问题,假设医护人员到达的时间是整分钟(如10:05:00),并且知道医护人员到达时间的区间,医护人员在这个区间的任意时刻到达的概率相同,核酸检测结束的时间为23:59。在校学生妙酱每天都会按时做核酸,并且妙酱出来做核酸的时间也为整分钟,妙酱想知道自己等多久可以做核酸。由于开始做核酸的时间是不固定的,请你求出妙酱做核酸等待时间(分钟)的期望,忽略妙酱排队等待的时间。

输入格式:

第一行医护人员到达时间的区间(hh:mm-hh:mm)。

第二行cc出来做核酸的时间(hh:mm)。

输入的时间均在一天内。

输出格式:

等待时间(分钟)的期望值,保留两位小数。

输入样例:

10:00-10:29
10:15

输出样例:

3.50

源代码

这道题太老六了我真的是糊了

#include <iostream>
using namespace std;
int main()
{//利用格式化读入快速得到数据 int h1,m1,h2,m2;scanf("%2d:%2d-%2d:%2d",&h1,&m1,&h2,&m2);int h3,m3;scanf("%2d:%2d",&h3,&m3);//化为分钟对数据进行处理 int st=h1*60+m1;//医生开始 int ed=h2*60+m2;//医生走 int t=h3*60+m3;//cc到的时间 double ans=0;//初始化 //总概率为1分为(ed-st+1)份 for(int i = 1;i <= ed-t;i ++ ){//从cc到开始直至医生走累加求和 ans+=i*1.0/(ed-st+1);}printf("%.2lf",ans);return 0;
}

郑州大学“战役杯”第一次比赛题解相关推荐

  1. 郑州大学“战役杯”第二次比赛题解

    1 公司的Logo 为了感谢河南省八六三软件有限公司对战疫杯ACM在线程序设计竞赛的大力支持,小Y决定为公司制作个logo. logo通常要用在各种不同的场景,因此logo的尺寸必须是可变的.现给你原 ...

  2. 郑州大学“战役杯”第三次比赛题解

    1 疫情防控网格化 由于防控形势严峻,现在z市已经开始了全区域的网格化封控管理.该市的区域可以看成一个矩形,其中所有主干道都是水平或垂直的,并且贯穿整个区域.如图所示,黑色表示城区的边界,红色表示城区 ...

  3. [XUPT_ACM]寒假第一次比赛题解

    写在前面:本次比赛共11题,设计的是A-E是简单题,F-H为中等题,I-K为难题,考虑到比赛的友好性,我们并没有将题目难度打乱,而是基本上按照从简单到难来排序.比赛的总体出题和预期的差不多,其中B题出 ...

  4. [XUPT_ACM]寒假第二次比赛题解

    写在前面:本次比赛共12题,比赛总体难度相比第一次比赛略有提高,但是整体难度依旧不难,本次比赛打乱了题目,题目难度随机,导致了简单题出题人数减少.本次比赛的题目难度跨度不是特别大,但是题目类型增多,由 ...

  5. 羊城杯2022 部分题解

    羊城杯2022 部分题解 2678.54分39名. 排名不算高,但是比赛过程还是挺有意思的,虽然时好时坏的平台和脑洞题很屑. Crypto有大佬去carry了,这次只搞了Misc,Web辅助坐牢. 签 ...

  6. 2021 第十二届 蓝桥杯 双向排序 题解 栈+文艺平衡树

    2021 第十二届蓝桥杯 双向排序 题解 栈+文艺平衡树 题目描述 思路 实现方法 代码 只用栈 只用栈的代码 题目描述 原题链接:https://www.lanqiao.cn/problems/14 ...

  7. 电信杯网球比赛系统_项目总结

    目录 项目介绍 负责内容 小程序 1.比赛邀请制业务逻辑开发 2.首页Canvas覆盖弹出的Modal组件 3.实现用户注册登录功能 4.Dva解决异步问题 后台管理平台 1.使用Promise实现先 ...

  8. 【2022年蓝桥杯】蓝桥杯第一次海选考试题(5题考试大二)

    校内蓝桥杯第一次海选题(大二) 编码环境: 编码语言:C#/Java 编码工具:Visual Studio/Eclpse 编码项目:C#控制台应用程序/JavaProject 共计100分: 第一题1 ...

  9. 蓝桥杯的比赛流程和必考点

    蓝桥杯的比赛流程和必考点 距省赛仅1个多月!蓝桥杯的比赛流程和必考点,你还不清楚? "巷子里的猫很自由,却没有归宿:围墙里的狗有归宿,终身都得低头.人生这道选择题,怎么选都会有遗憾.&quo ...

最新文章

  1. 今天准备正式开博了!专注于Silverlight!
  2. 《软件工程(第4版?修订版)》—第1章1.2节软件工程取得了哪些进展
  3. 【若依(ruoyi)】模态框
  4. jQuery Raty星级评分插件使用方法
  5. 1046 划拳 PAT乙级(C++)
  6. 泡泡提示加强版 完美支持XHTML(JavaScript)--zhuan
  7. 给创业前的你4点建议
  8. ExtDeprecationWarning: Importing flask.ext.bootstrap is deprecated, use flask_bootstrap instead.
  9. 高颜值的第三方网易云播放器YesPlayMusic
  10. C++ 职工管理系统
  11. 朗强科技讲解:HDMI分配器的作用与使用方法
  12. 中国大学慕课公开课-《视听语言》-学习笔记-1
  13. 上海宝付揭穿网络招聘小把戏
  14. linux 二次封装 释放,Linux必学的60个命令(二)
  15. 网页直播源码,实现界面左右滑动
  16. 你的团队健康吗?如何打造一支健康的团队?
  17. astah_激活步骤
  18. tensorRT onnx中属性名相同,但实际大小不同生成问题
  19. pc端编码表必须为gbk才能正常启动软件_【干货】请收下这份非常完整的PCIE4.0 发送端测试SOP...
  20. 高晓松《晓说》为何这么红?

热门文章

  1. oj记录 牛客小I白月赛50 C减法与求余 (思维
  2. 从One-hot, Word embedding到Transformer,一步步教你理解Bert
  3. 机器学习总结3 #博学谷IT学习技术支持#
  4. 2020年第十七届中国研究生数学建模竞赛B题 汽油辛烷值建模
  5. 笔记 - 会计学原理
  6. 杰力科创--单片机--DLT8P65SA--单键多模式调光调色带掉电记忆镜子方案
  7. Qbao Network V3.6即将上线,你喜欢的功能它都有!
  8. 深度学习的基本专业术语
  9. C语言编程调试时,做完所有操作回车运行,调试框直接闪退。
  10. 学完python可以做哪些工作