2021.5.22 vj补题
A - Marks
题意:给出一个学生人数n,每个学生的m个学科成绩(成绩从1到9)没有空格排列给出。在每科中都有成绩最好的人或者并列,求出最好成绩的人数
思路:求每列成绩中最大的数的个数。求出每列成绩中的最大值,遍历每列的各行若值与最大值一样就用另一个数组标记出来,最后遍历标记数组记录下总个数,即为最终结果。
代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
char s[n+5][m+5];
for(int i=0;i<n;i++)
{
scanf("%s",&s[i]);
}
int b[n+5],ct=0;
memset(b,0,sizeof(b));
for(int j=0;j<m;j++)
{
int maxx;
maxx=s[0][j]-'0';
for(int i=0;i<n;i++)
{
maxx=max(s[i][j]-'0',maxx);
}
//cout<<maxx<<endl;
for(int i=0;i<n;i++)
{
if(s[i][j]-'0'==maxx)
{
b[i]=1;
//cout<<" "<<i<<endl;
}
}
}
for(int i=0;i<n;i++)
{
if(b[i]==1)ct++;
}
cout<<ct<<endl;
}
B - Steps
题意:给出一个方格的格式为n*m,一开始V位于(x,y)处,给出k个向量,对于每个向量都一直按向量的方向移动,但不能走出方格,当要出方格时就停止移动,再进行下一个向量的移动,运行完k次,求V一共移动了多少步。
题解:对于每一次的移动,分横轴和纵轴的两种情况算出在方格允许的范围内可移动的次数a,b,算出两个的最小次数t=min(a,b),求出变化后的x,y,记录下移动的步数s+=t;依次进行k次,求出总s即可。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll n,m;
cin>>n>>m;
ll x,y;
cin>>x>>y;
int k;
cin>>k;
ll s=0;
while(k--)
{
ll dx,dy,t,a,b;
cin>>dx>>dy;
if(dx<0)
{
a=(x-1)/-dx;
}
else if(dx>0)
{
a=(n-x)/dx;
}
if(dy<0)
{
b=(y-1)/-dy;
}
else if(dy>0)
{
b=(m-y)/dy;
}
if(dx==0||dy==0)
{
t=dx==0?b:a;
}
else t=min(a,b);
//cout<<t<<" ";
x=x+dx*t;
y=y+dy*t;
s+=t;
}
cout<<s<<endl;
}
C - Pocket Book
题意:给出n个字符串,每个字符串长度为m,每两串的前k(1=<k<=m)个字符可以进行交换,求有多少种不同的字符串。
题解:找规律,可以发现每列不同字符的个数相乘,即为最终结果。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
char s[110][110];
for(int i=0;i<n;i++)
{
scanf("%s",&s[i]);
//puts(s[i]);
}
long long ct=1,w;
int b[1000];
for(int j=0;j<m;j++)
{
memset(b,0,sizeof(b));
w=0;
for(int i=0;i<n;i++)
{
if(b[s[i][j]-'A']==0)
{
++w;
b[s[i][j]-'A']=1;
}
}
ct=ct*w;
ct%=1000000007;
//cout<<w<<endl;
}
printf("%lld\n",ct);
}
2021.5.22 vj补题的更多相关文章
- QFNU-ACM 2021.10.09 Rating补题
A - A CodeForces - 478A 注意点: 和为0时要特判一下. 代码: #include<bits/stdc++.h> using namespace std; int m ...
- 2021-5-15 vj补题
C - Win or Freeze CodeForces - 151C 题目内容: You can't possibly imagine how cold our friends are this w ...
- 【春训团队赛第四场】补题 | MST上倍增 | LCA | DAG上最长路 | 思维 | 素数筛 | 找规律 | 计几 | 背包 | 并查集
春训团队赛第四场 ID A B C D E F G H I J K L M AC O O O O O O O O O 补题 ? ? O O 传送门 题目链接(CF Gym102021) 题解链接(pd ...
- 2020.12.20vj补题
A - Insomnia cure 题意:一共s只龙,每隔k,l,m,n只龙就会受伤,问这s只龙有多少龙是受伤的 思路:看起来题目范围并不是很多,直接进行循环判断 代码: 1 #include< ...
- hdu5017:补题系列之西安网络赛1011
补题系列之西安网络赛1011 题目大意:给定一个椭球: 求它到原点的最短距离. 思路: 对于一个椭球的标准方程 x^2/a^2 + y^2/b^2 +z^2/c^2=1 来说,它到原点的最短距离即为m ...
- 2017河工大校赛补题CGH and 赛后小结
网页设计课上实在无聊,便开始补题,发现比赛时候僵着的东西突然相通了不少 首先,"追妹"这题,两个队友讨论半天,分好多种情况最后放弃(可是我连题目都没看啊),今天看了之后试试是不是直 ...
- 2018 HDU多校第四场赛后补题
2018 HDU多校第四场赛后补题 自己学校出的毒瘤场..吃枣药丸 hdu中的题号是6332 - 6343. K. Expression in Memories 题意: 判断一个简化版的算术表达式是否 ...
- 2018 HDU多校第三场赛后补题
2018 HDU多校第三场赛后补题 从易到难来写吧,其中题意有些直接摘了Claris的,数据范围是就不标了. 如果需要可以去hdu题库里找.题号是6319 - 6331. L. Visual Cube ...
- [数]补题ver.
上次补题好像把两次训练混在一起了,总之先按时间顺序补完这一次|ू・ω・` ) HDU-6301 不会的东西不能逃避.jpg 红小豆非常讨厌构造题,因为非常不会,并且非常逃避学习这类题,因为总也搞不清楚 ...
随机推荐
- 实型(浮点型):float、double
实型(浮点型):float.double 实型变量也可以称为浮点型,浮点型变量是用来存储小数数值的.在C语言中,浮点型分为两种:单精度浮点型(float).双精度浮点型(double),但是doubl ...
- Qt之文件操作
虽然文件操作是一项很常用的功能,但是总记不住,今天就干脆记了一下笔记,以后好查阅. 在Qt中,主要使用的是QFile类进行文件操作,因此要包括#include <QFile>头文件.下面就 ...
- maven下载出错
求解
- Nginx的高级使用
1.概述 之前介绍过Nginx的简单使用,今天来聊聊Nginx的一些高级使用. 2.使用Nginx解决跨域问题 当公司存在多个域名时,两个不同的域名相互访问就会存在跨域问题. 或者在进行前端开发时,通 ...
- client-go实战之二:RESTClient
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- C# List集合类常用操作:四、删除
Clear() 从 List<T> 中移除所有元素. List<Employees> employees = new List<Employees>(); empl ...
- 模拟BS服务器
一.模拟BS服务器分析 二.BS模拟服务器代码实现 图片都是单独请求,后台单独线程,这边是通过构造方法传入的Runable接口的实现类匿名对象创建线程: 创建本地输入流读取到网络输出流传过来的信息再放 ...
- js不同地图坐标系经纬度转换(天地图,高德地图,百度地图,腾讯地图)
1.js转换代码 1 //转换常数 2 var x_pi = 3.14159265358979324 * 3000.0 / 180.0; 3 var pi = 3.14159265358979324; ...
- CodeForce-702C Cellular Network(查找)
Cellular Network CodeForces - 702C 给定 n (城市数量) 和 m (灯塔数量): 给定 a1~an 城市坐标: 给定 b1~bm 灯塔坐标: 求出灯塔照亮的最小半径 ...
- 3.8学习总结——Android保存信息
为了保存软件的设置参数,Android平台为我们提供了一个SharedPreferences接口,它是一个轻量级的存储类,特别适合用于保存软件配置参数.使用SharedPreferences保存数据, ...