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 红小豆非常讨厌构造题,因为非常不会,并且非常逃避学习这类题,因为总也搞不清楚 ...
随机推荐
- 谷歌api 二维码生成 实例
谷歌提供的二维码生成器接口,非常实用!分享给大家 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- Servlet学习笔记(三)之HttpServletResponse
init() 方法中参数 ServletConfig 对象使用 通过ServletConfig 获得 ServletContext对象 使用 HttpServletRequest 与HttpServl ...
- 基于Linux系统的MariaDB数据库的安装配置
数据库是指长期存储在计算机内.有组织的和可共享的数据集合.表是数据库存储数据的基本单位,一个表由若干个字段组成 MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 G ...
- MyBatis-Plus 代码生成器模板
MyBatis-Plus 代码生成器模板 maven 依赖 <!--Mysql--> <dependency> <groupId>mysql</groupId ...
- Django——cookie保持登录
普通登录时,无法保持登录的状态,每一次请求时都需要重新登录. 而在登录时,生成cookie并保存在浏览器中,这样每次登录就会携带登录信息,就可以保持登录状态了. 操作cookie语法: # (1) 设 ...
- Pycharm去除波浪线等相关操作
- GO安装golang.org/x/net扩展库
在学习golang过程中,有部分示例代码使用到了非标准库golang.org/x/net/html相关的库函数,但是标准代码库中没有该库,因此需要自己安装: 我这里使用git下载源码进行的安装. 为了 ...
- 什么是内存屏障? Why Memory Barriers ?
要了解如何使用memory barrier,最好的方法是明白它为什么存在.CPU硬件设计为了提高指令的执行速度,增设了两个缓冲区(store buffer, invalidate que ...
- IPsec 9个包分析(主模式+快速模式)
第一阶段:ISAKMP协商阶段 1.1 第一包 包1:发起端协商SA,使用的是UDP协议,端口号是500,上层协议是ISAKMP,该协议提供的是一个框架,里面的负载Next payload类似模块,可 ...
- Java-枚举(Enum)
1.枚举概述 枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常熟.当一个变量有几种固定可能的取值时,就可以将其定义为枚举类型. 1.1 声明枚举 Java中枚举是一个特殊的类,使用enum关 ...