盛大游戏杯第十五届上海大学程序设计联赛暨上海金马五校赛

编程1小时,提交4小时

做这种比赛一定要选一个好OJ啊

黑白图像直方图

发布时间: 2017年7月8日 21:00   最后更新: 2017年7月8日 22:38   时间限制: 1000ms   内存限制: 128M

描述

 

 

在一个矩形的灰度图像上,每个像素点或者是黑色的或者是白色的。黑色像素点用1 表示,白色像素点用0 表示。现在要求你编写一个程序,计算每列上黑色像素点的个数并输出。如下图所示是一个68 的黑板图像。 

1 1 0 0 1 1 1 1
0 1 1 0 1 0 1 0
1 1 1 1 0 1 1 0
0 1 1 0 0 1 0 0
1 0 1 0 0 1 0 0
0 1 0 1 0 1 1 0

 

输入

输入有多组组。
每组的第一行有2 个整数mn ,(1<=mn<=100 )。
接着有m 行,每行有n 个数字,每个数字是01 ,之间用一个空格分开。

输出

对图像数据,依次一行输出图像中每列黑色像素点的总数。

样例输入1 复制
3 5
1 1 0 0 1
0 1 1 0 1
1 1 1 1 0
6 8
1 1 0 0 1 1 1 1
0 1 1 0 1 0 1 0
1 1 1 1 0 1 1 0
0 1 1 0 0 1 0 0
1 0 1 0 0 1 0 0
0 1 0 1 0 1 1 0
样例输出1
2 3 2 1 2
3 5 4 2 2 5 4 1
直接统计每列的和就好
#include <bits/stdc++.h>
using namespace std;
int a[105];
int main() {ios::sync_with_stdio(false);cin.tie(0);int n,m;while(cin>>n>>m){for(int i=0;i<m;i++)a[i]=0;for(int i=0;i<n;i++)for(int j=0;j<m;j++){int p;cin>>p;a[j]+=p;}cout<<a[0];for(int i=1;i<m;i++){cout<<" "<<a[i];}cout<<endl;}return 0;
}

神无月排位赛

发布时间: 2017年7月8日 21:06   最后更新: 2017年7月8日 22:35   时间限制: 1000ms   内存限制: 128M

描述

《神无月》作为盛大游戏2017年的全新原创大作,其开发团队在自研实力强大的传世工作室基础之上,还有美树本晴彦等日本一线知名画师及日本游戏音乐大师崎元仁加盟参与制作。目前正在不限号内测中,有很多玩家进入到神无月的世界中。

在神无月中,有着玩家之间切磋的排位赛,其段位主要分为五大段位,从低到高依次为:新兵、菁英、战将、统帅、王者。每个玩家只有从新兵段位慢慢努力,一点点晋级才能到达王者段位。成为一个王者是每一个玩家的追求和心愿。

image.png

假设神无月的段位系统如下:

从低到高的段位依次简记为:D、C、B、A、S。玩家打排位赛,每胜利1局增加10分,输1局扣除5分。每一个段位都需要积分,累计100分才可以进入晋级赛,晋级赛采用三局两胜制(3局中达到2局胜利就晋级成功,有2局失败就算晋级失败, 连胜或连败两局,第三局不需要打了)。晋级成功后,成为下一个段位,积分变为0,重新开始算分;如果晋级失败,则积分变为60,重新开始算分。为方便计算,如果该玩家一直输,积分降为0后,不再降分,也不会掉段位。

大圣同学最近对神无月非常喜欢,一直在努力成为王者。他从新兵0分开始打排位赛(刚开始处在段位D),他告诉你最近若干场比赛的最后胜利情况,请你写个算法猜猜他现在所处的段位。当段位到达S时,段位将不再提高。

输入

有若干组数据。
每组的第一行为一个N0<N<500 ),表示有N 场比赛数据。
第二行有N 个数字,每个数字之间有空格隔开,每个数字代表每场比赛的输赢情况,1 表示赢,0 表示输。
注意:当第n 场比赛结束时,若大圣同学正处于晋级赛,并且还无法决定晋级成功或失败,那么可以忽略这场晋级赛

输出

对于每组比赛数据,输出最后所处的段位的一个英文字符(DCBAS 这五个段位中的一个)。

样例输入1 复制
15
1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
30
1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1
样例输出1
C
B
模拟。把排位赛模拟下,晋级赛模拟下
#include <bits/stdc++.h>
using namespace std;
int main()
{ios::sync_with_stdio(false);cin.tie(0);int t;while(cin>>t){int n=0,f=0,f1=0,f2=0,f3=0;for(int i=0; i<t; i++){int p;cin>>p;if(!f){if(p)n+=10;else if(n>=5)n-=5;if(n>=100)f=1;}else{if(p)f1+=1;else f2+=1;if(f2==2){f=0;n=60;f1=0;f2=0;}else if(f1==2){f=0;n=0;f3++;f1=0;f2=0;}}}if(f3>3)printf("S\n");else if(f3>2)printf("A\n");else if(f3>1)printf("B\n");else if(f3>0)printf("C\n");elseprintf("D\n");}return 0;
}

I Love ces

发布时间: 2017年7月8日 21:08   最后更新: 2017年7月8日 22:33   时间限制: 1000ms   内存限制: 128M

描述

时间过得好快啊,SHU计算机学院又有新的一批小朋友们进来了。2016级的同学想必也是非常喜欢计算机学院的,于是院长想测试一下大家对计算机的喜爱程度(院长大人别查我水表)。

院长给大家一行由大写字母(A-Z)和小写字母(a-z)组成的字符串,允许同学们在这个字符串里面任意挑选若干个字符,问最多可以组成多少个I LOVE CES(不区分大小写,没有空格,即只要有这8个字符就可以组成一个)。

输入

多组输入,每组一行,输入一个字符串。
字符串长度<=100000

输出

每组输出一行答案,如题意。

样例输入1 复制
IlovecesiLOVECES
样例输出1
2
统计字符个数
#include <bits/stdc++.h>
using namespace std;
char s[100005];
int main() {while(~scanf("%s",s)){int I=0,l=0,o=0,v=0,c=0,e=0,st=0;for(int i=0;s[i];i++)if(s[i]=='i'||s[i]=='I')I++;else if(s[i]=='l'||s[i]=='L')l++;else if(s[i]=='o'||s[i]=='O')o++;else if(s[i]=='v'||s[i]=='V')v++;else if(s[i]=='e'||s[i]=='E')e++;else if(s[i]=='c'||s[i]=='C')c++;else if(s[i]=='s'||s[i]=='S')st++;e/=2;printf("%d\n",min(min(min(I,l),min(o,v)),min(min(c,e),st)));}return 0;
}

添加好友

发布时间: 2017年7月8日 21:10   最后更新: 2017年7月8日 22:32   时间限制: 1000ms   内存限制: 128M

描述

Tony最近喜欢上了龙之谷游戏,所以他想叫上他的好友组建一个公会来一起享受这款游戏。

Tony一共有n 个好友,他可以叫上任意k1<=k<=n )个好友来组建公会,并且所有好友都会答应他的请求。问Tony一共可以有多少种方案组建这个公会?

只要不是完全相同的人组建的方案视为不同方案,并且Tony至少要叫上一个人。

输入

多组输入,每组一行,输入一个正整数n1<=n<=1000000000 )。

输出

每组输出一行,输出方案数。(对1000000007 取膜)

样例输入1 复制
2
样例输出1
3
就是2^n-1对1e9+7取模,直接快速幂模板就行
#include <stdio.h>
#include <bits/stdc++.h>
typedef long long LL;
const LL c=1e9+7;
using namespace std;
LL la(LL a, LL b)
{LL ans=1;a%=c;while(b>0){if(b%2==1)ans=(ans*a)%c;b=b/2;a=(a*a)%c;}return ans;
}
int main() {LL n;while(cin>>n){printf("%lld\n",(la(2,n)-1+c)%c);}return 0;
}

字符串进制转换

发布时间: 2017年7月8日 21:13   最后更新: 2017年7月8日 22:31   时间限制: 1000ms   内存限制: 128M

描述

Claire Redfield在龙之谷游戏的一次任务中获得了一个上了锁的宝箱,上面刻了一串由小写字母构成的字符串A和一个数字m

经过Claire长时间研究,他发现密码是和am 有关的。字符串A相当于一个26进制的数字,a 相当于0b 相当于1 …….z 相当于25 。然后要将这个26进制的数转化成m 进制那就是这个宝箱的密码。

Claire觉得这个太简单了所以要你帮她完成。

输入

多组输入,每组一行,输入一个字符串A 和一个正整数m
字符串长度<=102<=m<=9

输出

每组输出一行答案,如题意。

样例输入1 复制
b 2
样例输出1
1
简单的进制转换
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
char f[100];
int l;
void la(LL n, int b) {static char c[16]= {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};l=0;while(n) {f[l++]=c[n%b];n=n/b;}
}
int main() {ios::sync_with_stdio(false);cin.tie(0);string s;int m;while(cin>>s>>m){LL t=0;for(int i=0;s[i];i++)t=t*26+s[i]-'a';if(t==0){printf("%d",0);}else{la(t,m);for(int k=l-1; k>=0; k--)printf("%c",f[k]);}puts("");
}return 0;
}

A序列

发布时间: 2017年7月8日 21:16   最后更新: 2017年7月8日 22:29   时间限制: 1000ms   内存限制: 128M

描述

如果一个序列有奇数个正整数组成,不妨令此序列为a1,a2,a3,...,a2k+1 (0<=k ),并且a1,a2...ak+1 是一个严格递增的序列,ak+1,ak+2,...,a2k+1 ,是一个严格递减的序列,则称此序列是A序列。

比如1 2 5 4 3就是一个A序列。

现在Jazz有一个长度为n 的数组,他希望让你求出这个数组所有满足A序列定义的子序列里面最大的那个长度。(子序列可以不连续)

比如1 2 5 4 3 6 7 8 9,最长的A序列子串是1 2 5 4 3。

输入

多组输入,每组两行。
第一行是n ,表示给的数组的长度。
第二行有n 个数(int范围),即给你的数组。
1<=n<=500000

输出

每组输入输出一行,即最长的A序列子串的长度。

样例输入1 复制
9
1 2 5 4 3 6 7 8 9
样例输出1
5
最长上升子序列,正着来一次,倒着来一次,但是复杂度要nlogn的
最长上升子序列的思路来自这里,应该没毛病,OJ炸了
#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
const int N=5e5+10;
int a[N],f[N],l[N],r[N];
int main()
{int n;while(~scanf("%d",&n)){for(int i=1; i<=n; i++)scanf("%d",&a[i]);int c=1;l[1]=1,r[n]=1,f[1]=a[1];for(int i=2; i<=n; i++){if(a[i]>f[c]) {f[++c]=a[i];l[i]=c;}else{int k=lower_bound(f+1,f+c,a[i])-f;l[i]=k;f[k]=a[i];}}c=1,f[1]=a[n];for(int i=n-1; i ; i--){if(a[i]>f[c]) {f[++c]=a[i];r[i]=c;}else{int k=lower_bound(f+1,f+c,a[i])-f;r[i]=k;f[k]=a[i];}}c=0;for(int i=1; i<=n; i++)c=max(c,min(2*l[i]-1,2*r[i]-1));printf("%d\n",c);}return 0;
}

 巧用c++的stl简单实现最长上升子序列

fill(g,g+n,infinity);
for(int i=0;i<n;i++) {int j=lower_bound(g, g+n,a[i])-g;f[i]=j+1;g[j]=a[i];
}

丢史蒂芬妮

发布时间: 2017年7月9日 18:17   最后更新: 2017年7月9日 21:05   时间限制: 1000ms   内存限制: 128M

描述

有一天,空和白很无聊,决定玩盛大游戏,考虑到两个人玩,他们随便掏了一个游戏出来:在一个nm的棋盘上,首先把史蒂芬妮·多拉放在左上角(1,1)的位置。每次一个人可以将她往下,往右,往右下丢一格。当前回合,谁不能丢史蒂芬妮,谁就输了。(注意,不可以把活人丢出棋盘啦!)游戏总是空先手。

白说,这是一个垃圾游戏!我们每次把史蒂芬妮丢素数个位置吧!(换句话说,每次丢2357或…格)空答应了。

我们都知道,空和白都很聪明,不管哪方存在一个可以必胜的最优策略,都会按照最优策略保证胜利。

玩了一局,空已经知道了这个游戏的套路,现在他决定考考你,对于给定的nm,空是赢是输?如果空必胜,输出“Sora”(无引号);反之,输出“Shiro”(无引号)。

输入

第一行有一个T表示数组组数,1<=T<100000
从第二行开始,每行为棋盘大小,nm分别表示行列。
1=<n<=5001=<m<=500

输出

对于每组数据,按题目要求输出。

样例输入1
4
1 1
2 2
10 10
30 30

样例输出1

Shiro
Shiro
Shiro
Sora


这个就是个sg函数呗,比如我2就是个必胜啊
然后设个三重循环考虑终点
这位聚聚的预处理
也可以进这位聚聚的博客看其他代码哦

#include <bits/stdc++.h>
using namespace std;
#define mst(a,b) memset((a),(b),sizeof(a))
const int maxn= 500;
const ll mod = 1e9+7;
const int INF = 0x3f3f3f3f;
const double eps = 1e-6;
int prime[maxn+5]= {0};
int num_prime=0;
bool isprime[maxn+5]= {1,1};
int vis[maxn+5][maxn+5];
void init()
{for(int i=2; i<maxn+5; i++){if(!isprime[i])prime[num_prime++]=i;for(int j=0; j<num_prime&&i*prime[j]<maxn+5; j++){isprime[i*prime[j]]=1;if(i%prime[j]==0)break;}}mst(vis,0);                     //1:必胜 2:必败vis[1][1]=2;for(int i=1; i<=maxn; i++){for(int j=1; j<=maxn; j++){if(vis[i][j]==0){vis[i][j]=2;}if(vis[i][j]==2){for(int k=0; ; k++){if(i+prime[k]>maxn&&j+prime[k]>maxn)break;if(i+prime[k]<=maxn){vis[i+prime[k]][j]=1;}if(j+prime[k]<=maxn){vis[i][j+prime[k]]=1;}if(i+prime[k]<=maxn&&j+prime[k]<=maxn){vis[i+prime[k]][j+prime[k]]=1;}}}}}
}
int main()
{init();int n,m;int T;scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);if(vis[n][m]==1) puts("Sora");else puts("Shiro");}return 0;
}

另一位聚聚的记忆化搜索

#include<bits/stdc++.h>
using namespace std;
int n,m,k,t,qu[maxn];
bool dp[maxn][maxn],vis[maxn][maxn];
bool dfs(int x,int y)
{if(vis[x][y])return dp[x][y];vis[x][y]=true;for(int i=1;i<=qu[0];i++){if(x-qu[i]>0)dp[x][y]|=(!dfs(x-qu[i],y));if(y-qu[i]>0)dp[x][y]|=(!dfs(x,y-qu[i]));if(x-qu[i]>0&&y-qu[i]>0)dp[x][y]|=(!dfs(x-qu[i],y-qu[i]));}return dp[x][y];
}
bool sushu(int x)
{if(x==2)return true;else if(x%2==0)return false;for(int i=3;i*i<=x;i+=2)if(x%i==0)return false;return true;
}
void init()
{int i,j;rep(i,2,maxn-10)if(sushu(i))qu[++qu[0]]=i;rep(i,1,maxn-10)rep(j,1,maxn-10)dfs(i,j);
}
int main()
{int i,j;init();scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);puts(dp[n][m]?"Sora":"Shiro");}return 0;
}

 

 

转载于:https://www.cnblogs.com/BobHuang/p/7142454.html

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

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

相关文章

Web开发介绍

Web开发介绍 一,认识一个网站 最早的软件都是运行在大型机上的&#xff0c;软件使用者通过“哑终端”登陆到大型机上去运行软件。 后来随着PC机的兴起&#xff0c;软件开始主要运行在桌面上&#xff0c;而数据库这样的软件运行在服务器端&#xff0c;这种Client/Server模式简…

Django简介以及安装

Django简介 1. 认识Django Django是一个高级的Python Web框架&#xff0c;它鼓励快速开发和清洁&#xff0c;务实的设计。由经验丰富的开发人员构建&#xff0c;它负责Web开发的许多麻烦&#xff0c;因此您可以专注于编写应用程序&#xff0c;而无需重新创建轮子。它是免费的…

python基础笔试面试题_python基础面试常见题

Python是目前市面上&#xff0c;我个人认为是最简洁、最优雅、最有前途、最全能的编程语言&#xff0c;没有之一。 2、通过什么途径学习的Python&#xff1f; 通过自学&#xff0c;包括网上查看一些视频&#xff0c;购买一些相关专业的书籍。 3、Python和Java、PHP、C、C#、C等…

django-rest-swagger显示接口备注内容

Swagger是一個API開發者的工具框架&#xff0c;用於生成、描述、調用和可視化RESTful風格的Web服務。總體目標是使客戶端和文件系統服務器以同樣的速度來更新&#xff0c;方法&#xff0c;參數和模型緊密集成到服務器端的代碼中&#xff0c;允許API始終保持同步。 在使用 djan…

安全和连接是IoT联网设备2大挑战

IoT正在推动500亿个联网设备在未来10年内从工业、零售、智能照明、智慧城市、汽车、农业、可穿戴设备、智能建筑、医疗市场涌现出来&#xff0c;ARM处理器部门市场营销总监Ian Smythe表示&#xff1a;“到2020年&#xff0c;消费电子和健康、智慧城市和物流、汽车和运输领域的I…

windows下部署免费ssl证书(letsencrypt)

随着网络的发展&#xff0c;网络安全也越来越重要&#xff0c;对于网站来说&#xff0c;从Http升级到https也是我们要做的首要事情。要实现https&#xff0c;首先我们需要申请一张SSL证书&#xff0c;这篇文章我主要介绍下边这几个方面&#xff1a; 1. SSL简单介绍 2. 免费Lete…

python中什么是关键字参数_如何使用python语言中函数的关键字参数的用法

一般情况下&#xff0c;在调用函数时&#xff0c;使用的是位置参数&#xff0c;即是按照参数的位置来传值&#xff1b;关键字参数是按照定义函数传入的参数名称来传值的。那么&#xff0c;关键字参数怎么使用&#xff1f;工具/原料 python pycharm 截图工具 WPS 方法/步骤 1 打…

【SSL】HTTPS配置全过程

服务器配置https协议 HTTPS&#xff0c;是以安全为目标的HTTP通道&#xff0c;简单讲是HTTP的安全版。即HTTP下加入SSL层&#xff0c;HTTPS的安全基础是SSL&#xff0c;因此加密的详细内容就需要SSL。 配置HTTPS就需要证书&#xff0c;关于证书方面不做过多解释&#xff0c;只…

输出四位完全平方数_完全平方数中的规律

PS&#xff1a;很近之前自己收集的资料一个正整数如果是另一个整数的完全平方&#xff0c;那么我们就称这个数为完全平方数&#xff0c;也叫做平方数。如&#xff1a;0&#xff0c;1&#xff0c;4&#xff0c;9&#xff0c;16&#xff0c;25&#xff0c;36&#xff0c;49&#…

为企业提供本地销售人员的Universal Avenue获1000万美元A轮融资

为各类B2B企业提供本地销售人员的瑞典初创企业Universal Avenue近日获得了1000万美元的A轮融资。此轮融资由Eight Roads&#xff08;富达国际的投资机构&#xff09;领投&#xff0c;原有投资者Northzone和MOOR跟投&#xff0c;加上2015年获得的500万美元种子轮融资&#xff0c…

【Linux分享】Linux常用命令+教程分享

今天分享分为两部分 :) PART01 Linux常用命令分享/ PART02 关于BD面试经验分享 30mins Linux Command: PART 1 你本可以张口就来..... 本篇内容分享的宗旨: 拿下Linux面试 别面试的时候呆呆地说个ls了&#x1f691; 本篇分享详细地介绍了常用Linux指令的功能、语法、参…

万能无线鼠标对码软件_400元就能买ROG无线游戏鼠标,ROG影刃2无线版使用体验...

影刃2是ROG刚刚推出的一款新产品&#xff0c;定位入门游戏玩家。目前市面上定位入门游戏玩家的无线鼠标真不多&#xff0c;400块以内的预算想要选购一款合适的无线游戏鼠标&#xff0c;选择其实非常有限。 就ROG产品线而言&#xff0c;烈刃2的价格到了700块钱&#xff1b;罗技G…

wampserver 虚拟主机

转载&#xff1a;http://blog.csdn.net/knight_quan/article/details/51830683 1.背景&#xff1a; 在进行网站开发的时候&#xff0c;通常需要以http://localhost或者127.0.0.1等地址来访问本地环境的网站。不过随着开发项目的增多&#xff0c;需要每次先访问localhost然后再选…

PL/SQL的结构

2019独角兽企业重金招聘Python工程师标准>>> [DECLARE] --声明开始关键字/*这里是声明部分,包括PL/SQL中的变量、常量以及类型第等*/BEGIN --执行部分开始标志/*这里是执行部分,是整个PL/SQL块的主体部分,该部分必须存在,可以是SQL语句或流程控制语句等…

cf方框透视易语言代码怎么写_易语言真的那么不入流吗?

很多人鄙视易语言&#xff0c;为什么那么多人一提易语言&#xff0c;除了骂&#xff0c;还是骂&#xff0c;易语言很大错误吗&#xff1f;知乎上的大神们是这么说的一个语言的“入流”&#xff0c;和是不是英文关键字无关&#xff0c;而是和这种语言进入某一子行业的契机有关。…

python发展历程

作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01; Python是我喜欢的语言&#xff0c;简洁&#xff0c;优美&#xff0c;容易使用。前两天&#xff0c;我很激昂的向朋友宣传Python的好处。 听过之…

【Django】RBAC权限管理系统模块-理解

今天文章分为两部分 :) PART1 RBAC权限管理内容分享/ PART2 关于字节跳动一面 10 Minutes Django-RBAC: PART 1 这权限管理系统主要功能是什么&#xff1f; 顾名思义&#xff0c;在系统中可以灵活的划分角色组&#xff0c;可以根据功能特性来划分&#xff1a;- 比如设置系…

Linux使用circos

1.在conda中安装bioconda conda install -c bioconda circos -y # 测试是否所有的module都安装好了 circos -module # 所有都显示OK则成功 ok 0.39 Font::TTF::Font ok 2.68 GD ok 0.2 GD::Polyline ... .... 2.检查模块是否齐全 circos -module 3.下…

【Mysql】数据库主从搭建-基于docker

后台可回复【1024】即可获取相关宝藏内容分享 :&#xff09; 为什么基于Docker搭建&#xff1f; 资源有限 虚拟机搭建对机器配置有要求&#xff0c;并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相互独立&#xff0c;有独立ip&#xff0c;互不冲突…

java创建对象new后面为啥可以传入参数_你有认真了解过自己的“Java对象”吗?渣男...

对象在 JVM 中是怎么存储的对象头里有什么&#xff1f;作为一名 Javaer&#xff0c;生活中的我们可能暂时没有对象&#xff0c;但是工作中每天都会创建大量的 Java 对象&#xff0c;你有试着去了解下自己的“对象”吗&#xff1f;我们从四个方面重新认识下自己的“对象”创建对…