2019年燕山大学大学生程序设计大赛(一)
2019年燕山大学大学生程序设计大赛(一)
- 迷人的FT
- 参考代码
- YSU复读机
- 参考代码
- 爱转圈圈的Codeoos
- 参考代码
- 看到草原上奔跑的马儿了吗?
- 参考代码
- Codeoos下象棋
- 参考代码
迷人的FT
T最近喜欢上了搭配,作为YSU最有潜力的搭配师,合理控制搭配成本是FT必须掌握的能力。现在FT需要完成一套搭配,但是他觉得挑选衣服很麻烦"这么低级的任务当然要交给计算机来做啊",FT如是说到。现在FT给了你n件衣服,每一件衣服有一个魅力值ai 。FT想要用最少的衣服完成一个魅力值至少为k的搭配方案。换句话说,你要选出一定数量的衣服,使得衣服魅力值之和不小于k 并且使得衣服数量最少。请你帮FT解决这个问题。
输入样例:
5 6
5 2 3 1 4
输出样例:
2
参考代码
/*
大致思路:为了使魅力值达到一定值且衣服最少,易知衣服的魅力值越大,需要其他的衣服就越少
所以排序即可 ,依次相加是否超过m ,
*/
#include<iostream>
#include<algorithm>
#include <set>
#include <string>
#include <cstdio>
using namespace std;const int maxn = 1e5+5;
int n,m;
int a[maxn];bool cmp(int a,int b){return a>b;
}int main(){scanf("%d%d",&n,&m);for(int i=0;i<n;++i)scanf("%d",&a[i]);sort(a,a+n,cmp);for(int i=0;i<n;++i){m-=a[i];if(m<=0){cout<<i+1<<endl;break;}}if(m>0){cout<<"YingYingYing\n";}cin>>n;
}
YSU复读机
Codeoos是USY_ACM群的管理员。Codeoos是一个段子手,因此他总会在群里说一些令人耳目一新的话。通常,这些话会引起群友的兴趣,然后有些群友会复读Codeoos说的话。但是,有很多时候,群友也会带 Codeoos的节奏。有些群友是专业复读机,可以把节奏带的飞起。Codeoos对此感到十分苦恼。所以,Codeoos准备对群友进行一些惩♂罚,包括禁言和T出群聊。请你帮Codeoos写一个程序,判定哪些群友要受到惩罚, 受到什么惩罚。 Codeoos对于复读机是这样判定的:
输入样例:
10 104 I'mveryvegetable3 mywnb!9 mywnb! 4 mywnb! 4 mywnb! 5 urclosed 10 sure 6 hhhh 2 qaq 1 qaq
输出样例:
1 9
4
参考代码
/*
大致思路:读取一个数据与前一个数据进行比较,为了去重可以使用set,再对禁言是否在退出群聊里中出现
注意输出格式。
*/
#include<iostream>
#include<algorithm>
#include <set>
#include <string>
#include <cstdio>
using namespace std;
const int maxn = 1e3+3;set<int> a;//禁言
set<int> b;//退出群聊
int c[maxn];int main(){int n,m,index1,index2=0,inx=0;cin>>n>>m;string s1,s2="";for(int i=0;i<m;++i){cin>>index1>>s1;if(s2==s1){if(index1==index2){b.insert(index1);}else a.insert(index1);}index2=index1;s2=s1;}set<int>::iterator it;if(a.empty()){cout<<-1<<endl;}else{for(it=a.begin();it!=a.end();++it){if(b.find(*it)==b.end())c[inx++]=*it;}for(int i=0;i<inx;++i){cout<<c[i]<<" ";}cout<<endl;}if(b.empty()){cout<<-1<<endl;}else{for(it=b.begin();it!=b.end();++it){cout<<*it<<" ";}cout<<endl;}
}
爱转圈圈的Codeoos
Codeoos是一个喜欢运动的女孩子,她喜欢转圈圈玩。但是她转圈圈有几个原则:
只能向左转,并且在一个地方最多转一次。
Codeoos每次要绕一个圈,所以起点和终点一定要相邻。
Codeoos有强迫症,所以她每次的路径一定是一个矩形。
输入样例:
3
1 2
2 2
3 3
输出样例:
0
4
48
参考代码
/*
此题数据范围小,直接利用bfs搜索就行,由于有多组输入数据,利用一遍bfs把结果求出来。
*/
看到草原上奔跑的马儿了吗?
我已经爱上这片森林了。
你喜欢大海,我喜欢你。
Thematrix233看着这诗意的文字,心中十分高兴。这两句诗让他联想到了草原上飞奔的马儿。此时,Thematrix233心中突然想到一个疑问:如果给马儿一个足够大的草原,马儿去一个地方最短的时间是多少?他去向Codeoos询问这个问题。但是Codeoos只会在象棋棋盘上得到答案——但是这就够了!问题又来了:Codeoos只会研究标准棋盘的情况,一个很大的棋盘太大了,Codeoos算不出来。请你帮助Codeoos算出来马从原点跳到给定的点最少需要走几步?
输入样例:
3
1 2
2 2
5 5
输出样例:
1
4
4
参考代码
/*
此题数据范围小,直接利用bfs搜索就行,由于有多组输入数据,利用一遍bfs把结果求出来。
*/
#include<iostream>
#include<algorithm>
#include <queue>
#include <string>
#include <cstdio>
using namespace std;
const int maxn=2e3+3;int pos[8][2]={{1,2},{2,1},{1,-2},{2,-1},{-1,2},{-2,1},{-1,2},{-2,-1}};struct node{int x,y,s;node(int x,int y,int s):x(x),y(y),s(s){}node(){}
};int a[maxn][maxn];
queue<node> q;void init(){for(int i=0;i<maxn;++i){for(int j=0;j<maxn;++j){a[i][j]=-1;}}a[1000][1000]=0;node p(1000,1000,0);q.push(p);int x,y,s,xx,yy;while(!q.empty()){p=q.front();q.pop();x=p.x;y=p.y;s=p.s+1;if(a[x][y]<p.s&&p.s!=0)continue;//优化for(int i=0;i<8;++i){xx = x+pos[i][0];yy = y+pos[i][1];if(xx>=maxn||xx<0||yy>=maxn||yy<0)continue;if(a[xx][yy]>s||a[xx][yy]==-1){a[xx][yy]=s;q.push(node(xx,yy,s));}}}
}int main(){init();int t,x,y;scanf("%d",&t);while(t--){scanf("%d%d",&x,&y);printf("%d\n",a[x+1000][y+1000]);}
}
Codeoos下象棋
Codeoos是一个有智慧的女孩子,她从小就喜欢下中国象棋。Codeoos十分喜欢使用車。(車可以在棋盘上在没有阻挡并且不走出棋盘的情况下沿一条直线走任意距离)。
维基百科对于車的介绍:“车”在没有其他棋子阻挡的情况下每一步可以沿着直线横走或直走任意步,步数不限,不可斜走或拐弯。吃子方式与走法相同,即每一步在其可允许行走的方向上如果有对方的棋子,就可以将它吃掉。
在整个棋局中,“车”通常被认为是攻击力最强的棋子,有“一车十子寒”之称。残局时若我方有车在场,应战不成问题;若仅有我方有车,则常可稳操左券。
现在Codeoos给了你一张很大的棋盘,他想计算一下一个車要到达目标点,需要走的距离。
输入样例:
1
1 2 9 10
输出样例:
16
参考代码
/*
此题直接“车”的移动特点,最多移动两次,最少距离为曼哈顿距离。
*/
#include<iostream>
#include<algorithm>
#include <set>
#include <string>
#include <cstdio>
using namespace std;int main(){int t;long long x1,x2,y1,y2;cin>>t;while(t--){cin>>x1>>y1>>x2>>y2;cout<<abs(x1-x2)+abs(y1-y2)<<endl;}
}
2019年燕山大学大学生程序设计大赛(一)相关推荐
- 怀化学院计算机科学张显老师,怀化学院第十二届大学生计算机程序设计竞赛暨2019年湖南省第十五届大学生程序设计大赛选拔赛完美落幕...
原标题:怀化学院第十二届大学生计算机程序设计竞赛暨2019年湖南省第十五届大学生程序设计大赛选拔赛完美落幕 2019年6月9日,由我校教务处主办,计算机科学与工程学院.怀化学院ACM协会承办的怀化学院 ...
- 2020安徽省大学生程序设计大赛题解——E 收集圣物
2020安徽省大学生程序设计大赛题解--E 收集圣物 E 收集圣物 在一个策略游戏中,僧侣单位可以收集圣物,放入修道院中,以生产黄金.因此,圣物对赢得游戏的胜利很重要. 某个僧侣正处于一个长为n 宽为 ...
- 2020安徽省大学生程序设计大赛题解——A数字排列
2020安徽省大学生程序设计大赛题解--A数字排列 A 数字排列 给出两个整数A 和 B,可以重新排列A 得到新的数字C(不能有前导0).求在小于等于B的情况下,C的最大值是多少.如果不存在输出-1. ...
- 2020安徽省大学生程序设计大赛题解——K 农夫打狼
2020安徽省大学生程序设计大赛题解--K 农夫打狼 K 农夫打狼 题解 标签 排序,动态规划 分析 图K−1本题的一个样例,彩色十字为起点和终点图K-1 \ \ \ \ 本题的一个样例,彩色十字为起 ...
- 2020安徽省大学生程序设计大赛题解——F 跳蛙出行
2020安徽省大学生程序设计大赛题解--F 跳蛙出行 F 跳蛙出行 池塘里有n片荷叶排成一行,有一只青蛙在上面跳跃.但是,这只青蛙是只不同寻常的青蛙,它每跳一次,只能从一片荷叶跳到相邻的荷叶上,并且, ...
- 补题:吉首大学第九届"新星杯"大学生程序设计大赛 ---还差一题.jpg
为了督促自己补题!以后都开博客记录! 本次比赛:吉首大学第九届"新星杯"大学生程序设计大赛(重现赛) 时间:2020/1/5 共做出8题,最后卡在了一道博弈题. A:比赛的时侯看了下题目,没看懂,然后 ...
- 吉首大学第九届"新星杯"大学生程序设计大赛 C.始战
吉首大学第九届"新星杯"大学生程序设计大赛 C.始战 题目描述 天地不仁,以万物为刍狗. 东汉末年,群雄并起.十八路诸侯各自为战,为得一地一城,大肆征战,民众死伤无数. 诸葛亮密如神鬼,疾如风雷.进不 ...
- 吉首大学第九届"新星杯"大学生程序设计大赛 J.小阳排队
吉首大学第九届"新星杯"大学生程序设计大赛 J.小阳排队 题目描述 小阳想要买个东西,然后就去了商店,发现进商店需要排队(生意太火爆!),然后就开始漫长的等待,他觉得自己 太无聊,便开始思考一个问题, ...
- 吉首大学第九届"新星杯"大学生程序设计大赛 M.来来来 比比咱谁更聪明
吉首大学第九届"新星杯"大学生程序设计大赛 M.来来来 比比咱谁更聪明 题目描述 小j和小k一起玩一个简单的小游戏,有一个容量为n的瓶子,此外还有m个容量不等杯子,他们用杯子装满水轮流往瓶子中倒水,如 ...
最新文章
- 阅读Book: MultiObjective using Evolutionary Algorithms (5) ---- Non-Dominated Sorting of a Population
- linux zabbix_agentd命令 监控服务器参数 简介
- Java-Frame
- linux程序打包安装,制作Linux下程序安裝包——使用腳本打包bin、run等安裝包
- spring mvc学习(36):jstl的jar包的下载
- request-爬取一张图片的练习-答案-私
- python标准库之logging
- 使用ObjectDataSource 显示数据
- MongoDB C#:如何将包含DateTime的JSON反序列化为正确的BsonDocument DateTime值
- python snmp 自动化2-在python中使用snmp
- MSSQL中如何用SQL语句查询字段类型?
- Linux下Tomcat使用80端口
- 数字金额转中文大写金额 - 数字大写转换
- 网站搭建niushop系统,全面搭建,打包app,h5详细教程
- C++ Templates中文版 p61页的一个问题
- 树莓派开机连接桌面的两种方式
- 等额本金和等额本息是怎么算出来的
- 解决Android v4、v7包导入标红问题import android.support.v4.app.ActivityCompat;import android.support.v7.app
- Webshell-Part1Part2
- VScode受难记 - 0