E题的网络流还不会,先放着。由于打网络赛的时候在南京玩,随便找了家网吧做了前面几题,后面的几题由于比赛结束还没有放到OJ上评测,但都和AC的代码对拍100项以上没问题的,不出意外都能A。(这是个flag···)

A.成功人士

题面:

Description
学校里共有n个学生,m门课,如果某个学生在某门课中拿到了最高分(可以是并列),则这个学生是成功人士。现在给出n个学生的m门课的成绩,问有多少个成功人士。

Input
第一行,一个整数t,表示测试数据组数,(1<=t<=100)
对于每组测试数据,第一行两个整数,n和m,(1<=n,m<=50)
接下来n行,每一行有m个数字(中间不分隔),表示这个学生每门课的成绩,其中成绩为1-9的整数。

Output
每组测试数据,一个整数,表示有多少个成功人士。

Sample Input
2
3 3
223
232
112
3 5
91728
11828
11111

Sample Output
2
3

思路:

在第一次循环读入成绩的时候,得出每一门的最高成绩并记录。之后再扫一遍数人数就行了。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef struct {char grade[60];//由于题面上各个成绩之间没有空格,所以干脆用字符串进行处理
} Stu;
int main()
{int m,n,t;Stu student[60];cin>>t;while(t--){char maxn[60];memset(maxn,'0',sizeof(maxn));memset(student,0,sizeof(student));cin>>n>>m;for(int i=0;i<n;++i){for(int j=0;j<m;++j){cin>>student[i].grade[j];if(student[i].grade[j]>maxn[j])maxn[j]=student[i].grade[j];}}int ans=0;for(int i=0;i<n;++i){for(int j=0;j<m;++j){if(student[i].grade[j]==maxn[j]){ans++;//找到一个记录后记得跳出这一层循环,因为不管一个人的成绩有多少门第一,都只能算一次。break;}}}cout<<ans<<endl;}return 0;
}

B.迭代归一

题面:

Description
我们把一个正整数的每一位上的数字加起来,得到新的数字,我们把这样的一次操作称为一次迭代变换。直到这个数字只有一位数。
如,9876经过一次变换成为9+8+7+6=30,经过第二次变换成为3+0=3,结束。
那么9876就经过了两次迭代变换。如今给一个正整数,问需要迭代变换多少次后会停止。

Input
一个整数t,表示测试数据组数(1<=t<=100)。
对于每组测试数据,只有一行,表示一个正整数,正整数最多有100000位。

Output
输出若干行,每行对应每组数据需要迭代变换的次数

Sample Input
3
2
10
99999999

Sample Output
0
1
2

思路:

由于正整数比较大,所以用数组进行保存。但处理过一次就不需要了,拿int存就够了。
纯模拟题,按题意敲就行了。

代码:

#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
int main()
{int t;cin>>t;while(t--){char number[100000];memset(number,0,sizeof(number));cin>>number;long long a=0,b=0;//比赛的时候以防万一用的是long long,但其实int应该也够了int len=strlen(number);if(len==1){cout<<"0"<<endl;continue;}int ans=1;for(int i=0;i<len;++i)b+=number[i]-'0';//转化为数字while(b>=10){int a=0;while(b>0){a+=b%10;b/=10;}b = a;ans++;}cout<<ans<<endl;}return 0;
}

C.置换的魔术

题面:

Description
有n个正整数,其中1到n的正整数出现且只出现一次的序列,称为1-n的一个排列。
如1,2,3和3,1,2都是1-3的排列,但是1,3,3不是1-3的排列。
如今,给n个数,问最少修改几个数,可以使得序列成为1-n的一个排列。

Input
一个整数t,表示测试数据的组数,(1<=t<=210)
对于每一组测试数据,第一行为一个整数n,(1 <= n <= 500)
第二行有n个整数a1,a2,……an,空格分隔,(ai为任意的32位有符号正整数)。
保证多组数据中的n的和不超过100000。

Output
每组测试数据,输出一个整数,表示最少修改几个数。

Sample Input
2
5
1 3 2 4 5
6
1 1 1 1 1 1

Sample Output
0
5

思路:

给的数有可能是负数或者是大于n的数,要小心。
用一个bool数组标记一下,最后扫一遍计数应该就可以了。

代码:

#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{int T;cin>>T;while(T--){int n;int a[510];bool flag[510];memset(flag,true,sizeof(flag));cin>>n;for(int i=0;i<n;++i){cin>>a[i];if(a[i]>0&&a[i]<=n)//控制数据范围flag[a[i]]=false;}int cnt=0;for(int i=1;i<=n;++i){if(!flag[i])cnt++;}cout<<cnt<<endl;}return 0;
}

D.买买买

题面:

Description
一天Alice打开了她日常玩的游戏,发现她里面还有n个游戏币,她想把这些游戏币花光。
现在可以买的一共三种道具,分别是房子(每一个价值1234567个游戏币),车子(每一个价值123456个游戏币),电脑(每一个价值1234个游戏币)。
现在她想知道,通过买这三种道具是否可以把n个游戏币全部花光。

Input
第一行,一个数字t(1<=t<=100)。代表测试数据数量。
对于每一组测试数据,一个整数n(1<=n<=1000000000),代表现在的游戏币。

Output
输出n行,每行输出”YES”或者”NO”,表示她可以或者不可以把游戏币全部花光。

Sample Input
2
1359257
17851817

Sample Output
YES
NO

思路:

由于车,房子的价值都很大,所以能用枚举逐个尝试。然后把剩下的钱看对于电脑的钱取%,看是否为零就行了。

代码:

#include<iostream>
#include<cstdlib>
#define HOUSE 1234567
#define CAR 123456
#define COM 1234
using namespace std;
int main()
{cin.sync_with_stdio(false);int T;cin>>T;while(T--){bool flag=false;long long n;cin>>n;int mh=n/HOUSE;for(int i=0;i<=mh;++i){int mcar=(n-i*HOUSE)/CAR;for(int j=0;j<=mcar;++j)if((n-i*HOUSE-j*CAR)%COM==0){flag=true;}if(flag)break;}if(flag)cout<<"YES\n";elsecout<<"NO\n";}return 0;
}

F.周末大法好

题面:

Description
在火星上,每年有x天。惊奇的是,和地球上一样,火星上也是有星期的概念的,连续的5天工作日,然后连续的2天周末。他们只有周末放假。
现在你的任务是,确定火星上每年可能的最少放假的天数和最多放假的天数。

Input
第一行,一个数字n。代表测试数据数量。
接下来n行,每行一个整数x (1<=x<=1,000,000),代表火星每年有x天。

Output
输出n行,每行两个整数。代表火星上每年可能的最少放假的天数和最多放假的天数。

Sample Input
2
14
2

Sample Output
4 4
0 2

思路:

先把一年天数除以7乘以2,这是最少的放假天数。
然后一年天数对7取%,剩下的如果是6,则最少天数还要再加一。
而最多的天数应该是至少的放假天数加上min(一年天数%7,2),因为如果只剩下一天了,最多只能放假一天。而其他情况则可以是在一年开头多过一个周末(也就是两天)

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{int t;cin>>t;while(t--){int x;cin>>x;int  Min=x/7*2,Max;int  mod=x%7;if(mod==6)Min++;Max=x/7*2+min(mod,2);cout<<Min<<" "<<Max<<endl;}return 0;
}

G. 交换大法好

题面:

Description
有一天,天上掉馅饼了。不过不是直接掉馅饼,是告诉你你将要得到的馅饼的数量a。聪明的你得到了一种魔法,可以在整数a中交换任意两个相邻的数字。而这种魔法,你最多只能使用k次。你使用魔法操作a,得到的最大的结果就是你最终获得的馅饼数量。

你最多可以获得的馅饼数量是多少呢?

Input
第一行,一个数字n(1<=n<=60)。代表测试数据数量。
接下来n行,每行两个整数a和k(1<=a<=1,000,000,000; 0<=k<=100)。

Output
输出n行,每行一个整数,代表你最多使用魔法k次,可以得到的最大的数字。

Sample Input
2
1990 1
1034 2

Sample Output
9190
3104

思路:

暴力找

代码:

#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
void swap(char *a,char *b)
{char t=*a;*a=*b;*b=t;
}
int main()
{int T;cin>>T;while(T--){char s[20];int k;cin>>s>>k;int len=strlen(s);if(len==1){cout<<s<<endl;continue;}char Max='0';int Maxid=-1;for(int i=0;i<len;++i){if(k<=0)break;Max = s[i]; Maxid = i;for(int j=i;j<=i+k&&j<len;++j){if(s[j]>Max){Max=s[j];Maxid=j;}}k-=Maxid-i;for(int x=Maxid;x>i;--x)swap(&s[x],&s[x-1]);}cout<<s<<endl;}return 0;
}

H. 今年多少岁

题面:

Description
小明出生于1937年7月7日,问对于给定的日期,小明几周岁了,不足一周年的部分可以忽略。
注意:1938年7月6日,小明0周岁,1938年7月7日小明1周岁,同理1939年7月6日,小明1周岁,1939年7月7日,小明2周岁。

Input
一个整数t(1<=t<=100),表示数据组数
对于每组测试数据,三个整数,逗号隔开,分别表示给定日期的年、月、日。给定的日期保证合法, 而且一定是小明出生后的日期,且小明的岁数保证在100以内。

Output
对于每一组数据,输出一个整数,表示小明的周岁数。

Sample Input
2
1938 7 6
1938 7 7

Sample Output
0
1

思路:

先年份相减,然后看月份和日期,若不够一年,则结果减一。真·签到题,没啥说的。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{const int year=1937,month=7,day=7;int T;cin>>T;while(T--){int y,m,d;cin>>y>>m>>d;int ans=0;ans=y-year;if(m<month)ans--;if(m==month&&day>d)//如果不够一年的情况ans--;cout<<ans<<endl;}return 0;
}

2017-AHU校赛网络赛解题报告相关推荐

  1. 群赛 round#8 解题报告一 (swop,ranwen,easy)

    群赛 round#8 解题报告一 赛制: OI 难度: noip T1 交换!交换!(swop) [问题描述] ljm喜欢交换物品,他觉得这样可以与更多人分享好的事物. 有一天,lzx给了ljm n本 ...

  2. 高职网络系统管理国赛--网络赛题1路由选路解析

    高职网络系统管理国赛–网络赛题1路由选路解析 题目要求如下: (1)龙首原支行的原生产网段(VLAN 410).办公网段(VLAN 460)需要与省行的业务区.生产办公区的业务互联互通,需要在交换机S ...

  3. 2022年华为ICT实践赛网络赛道题库全(1107道题目)

    2022年华为ICT实践赛网络赛道题库 今年的省赛初赛17号比,好多省份因为疫情原因线上,真的羡慕各位学弟学妹,想当初自己和队友在实验室里通宵刷题和看教学视频(不过最后结果是好的自己拿了省一国二),线 ...

  4. 2019 西电ACM校赛网络赛 题解

    今年题目难度有较大提升,总体与往年类似,数学题居多.以下为我通过的部分题解. 赛题链接:http://acm.xidian.edu.cn/contest.php?cid=1053 A - 上帝视角 我 ...

  5. 网络优化(中国计量大学现代科技学院第三届“中竞杯”程序设计校赛(网络赛))

    题意: <梦三国2>是一款3D MOBA类网游.游戏继承<梦三国>的三国文化背景和基础玩法,并加入许多全新地图和全新竞技玩法.由于人气高,游戏在线人数与日俱增,我们知道当在线人 ...

  6. 2019湖北省赛网络赛C Store CDQ分治

    Ichuan is a store owner and his store has n products, numbered from 1 to ?. Recently, his business i ...

  7. WHU校赛2019(网络赛) 解题报告(CCNU_你们好强啊我们都是面包手) Apare_xzc

    WHU校赛2019(网络赛) 解题报告 CCNU_你们好强啊我们都是面包手(xzc zx lj) 战况: 比赛时3题,排名57,现在5题了 题目链接: WHU校赛2019 <-戳这里 以下题目按 ...

  8. 山东科技大学第二届ACM校赛解题报告

    这次校赛的目的,是为了省赛测试各种程序是否有问题. 热身赛的逗比题有点打击我,感觉正式赛应该不会出这种问题.开始的时候直接上了A题,然后大概是第六,前面好多友情队,正式队排名第二. 然后读了读B题,稍 ...

  9. 2014 ACM/ICPC 北京赛区网络赛解题报告汇总

    首页 算法竞赛» 信息聚合 ONLINE JUDGE 书刊杂志 BLOG» 新闻故事» 招聘信息» 投稿须知 2014 ACM/ICPC 北京赛区网络赛解题报告汇总 九月 21st, 2014 | P ...

  10. 2011 ACM/ICPC 福州赛区网络赛解题报告

    第一次写网络赛的题解,福州赛区网络赛作为我第一年ACM最后一次网络赛酱油,画了一个很像逗号的句号.....好吧,还得为北京现场赛准备啊准备....... 这次酱油打的很犀利,貌似出第一题很快,之后节奏 ...

最新文章

  1. 她当选美科学院外籍院士 却因不结婚生娃被骂犯罪
  2. iOS 无限后台运行
  3. DEBUG_NEW和THIS_FILE
  4. win7无法将应用程序锁定到任务栏的几种解决方法
  5. 【转】ITK和VTK比较
  6. 循环小数是分数集合吗_人教版小学数学三年级上册 分数的简单计算 教案、课件,公开课视频...
  7. java resource放入的文件没有生成在classes中_JAVA程序员学习笔记----mybatis深入剖析...
  8. Codeforces Round #226 (Div. 2)
  9. Node:连接MySQL报错\lib\protocol\Parser.js:43 Cannot read property ‘query‘ of undefined
  10. shell脚本检测监控mysql的CPU占用率
  11. linux 系统运维小工具
  12. 钉钉企业内部H5微应用开发
  13. Redis Zadd 命令 Redis 有序集合(sorted set)Redis Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中。如果某个成员已经是有序集的成员,那么更新
  14. 10行代码带你入门Windows编程
  15. Redis java如何清除缓存 redisTemplate
  16. css响应式网页设计:自适应屏幕宽度、移动页面开发技巧
  17. OSChina 周二乱弹 —— 掏心掏肺又掏钱,最终娶了个潘金莲
  18. RK3399 ARM开发板添加中文输入法
  19. android studio 小白使用记
  20. DSP开发-C语言环境

热门文章

  1. Linux搭建学习汇总
  2. lighttpd 之十二 网络请求服务响应流程
  3. 三亚适合几月份去玩 三亚必去的地方是哪里
  4. Win7去掉/恢复快捷方式箭头
  5. 文件关联修复工具(用文本文档保存后后缀修改为bat)
  6. 风云四(FY-4)气象卫星 tif文件解析成txt
  7. 如何使用 Xcode8 进行开发调试
  8. 下一代CRM是怎么样的?
  9. 金山词霸使用牛津词典取词的笨方法
  10. 矩阵的特征值和特征向量