SDNU_ACM_ICPC_2020_Winter_Practice_2nd
A - 【The__Flash】的矩阵
Input输入数据的第一行为一个正整数T,表示有T组测试数据。每一组测试数据的第一行为四个正整数m,n,x,y(0<m,n<1000 AND 0<x<=m AND 0<y<=n),表示给定的矩形有m行n列。接下来这个矩阵,有m行,每行有n个不大于1000的正整数。Output对于每组数据,输出一个整数,表示子矩阵的最大和。
Sample Input
1
4 5 2 2
3 361 649 676 588
992 762 156 993 169
662 34 638 89 543
525 165 254 809 280 Sample Output
2474 思路:
二维前缀和
#include <iostream>
#include <algorithm>
#include <cstdio>
int t,m,n,x,y,a[][],dp[][];
using namespace std;
int main()
{ cin>>t;
while(t--)
{
cin>>m>>n>>x>>y;
for(int i=;i<=m;i++)
for(int j=;j<=n;j++)
{
cin>>a[i][j];
}
for(int i=;i<=m;i++)
for(int j=;j<=n;j++)
{
dp[i][j]=a[i][j]+dp[i][j-]+dp[i-][j]-dp[i-][j-];
}
long long ans=;
for(int i=;i<=m-x;i++)
for(int j=;j<=n;j++)
{
long long ii=i+x-,jj=j+y-;
long long t=dp[ii][jj]-dp[i-][jj]-dp[ii][j-]+dp[i-][j-];
ans=max(ans,t);
}
cout<<ans<<endl;
}
}
G - 【The__Flash】的水题
You are given two strings of equal length ss and tt consisting of lowercase Latin letters. You may perform any number (possibly, zero) operations on these strings.
During each operation you choose two adjacent characters in any string and assign the value of the first character to the value of the second or vice versa.
For example, if ss is "acbc" you can get the following strings in one operation:
- "aabc" (if you perform s2=s1s2=s1 );
- "ccbc" (if you perform s1=s2s1=s2 );
- "accc" (if you perform s3=s2s3=s2 or s3=s4s3=s4 );
- "abbc" (if you perform s2=s3s2=s3 );
- "acbb" (if you perform s4=s3s4=s3 );
Note that you can also apply this operation to the string tt .
Please determine whether it is possible to transform ss into tt , applying the operation above any number of times.
Note that you have to answer qq independent queries.
Input
The first line contains one integer qq (1≤q≤1001≤q≤100 ) — the number of queries. Each query is represented by two consecutive lines.
The first line of each query contains the string ss (1≤|s|≤1001≤|s|≤100 ) consisting of lowercase Latin letters.
The second line of each query contains the string tt (1≤|t|≤1001≤|t|≤100 , |t|=|s||t|=|s| ) consisting of lowercase Latin letters.
Output
For each query, print "YES" if it is possible to make ss equal to tt , and "NO" otherwise.
You may print every letter in any case you want (so, for example, the strings "yEs", "yes", "Yes", and "YES" will all be recognized as positive answer).
Example
3
xabb
aabx
technocup
technocup
a
z
YES
YES
NO
Note
In the first query, you can perform two operations s1=s2s1=s2 (after it ss turns into "aabb") and t4=t3t4=t3 (after it tt turns into "aabb").
In the second query, the strings are equal initially, so the answer is "YES".
In the third query, you can not make strings ss and tt equal. Therefore, the answer is "NO".
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
string s,t;
cin>>n;
while(n--)
{
cin>>s>>t;
int ls=s.size();
int w=;
for(int i=;i<ls;i++)
{
for(int j=;j<ls;j++)
if(s[i]==t[j])
{
w=;
break;
}
}
if(w==)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
} }
Input每个测试实例第一行为一个整数N,(N <= 100000).接下来的N行,每行包括2个整数a b(1 <= a <= b <= N)。
当N = 0,输入结束。Output每个测试实例输出一行,包括N个整数,第I个数代表第I个气球总共被涂色的次数。Sample Input
3
1 1
2 2
3 3
3
1 1
1 2
1 3
0
Sample Output
1 1 1
3 2 1 一维前缀和
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n,a,b;
while(scanf("%d",&n)!=EOF)
{
if(n==) return ;
int m[]={};
int t=n;int s=;
while(n--)
{
cin>>a>>b;
m[a]++;m[b+]--; }
for(int i=;i<=t;i++)
{
s+=m[i];
cout<<s;
printf("%c",i==t?'\n':' ');
}
} }
SDNU_ACM_ICPC_2020_Winter_Practice_2nd的更多相关文章
随机推荐
- Oracle tnsnames.ora
安装过ORACLE的都知道,oracle安装时需要进行配置,这个配置可以在客户端的企业管理器一步一步进行,或者直接拷贝一个tnsnames.ora文件到安装目录下(c:\app\Administrat ...
- java-判断年份是不是闰年
if ((year%4==0)&&(year%100!=0)||(year%400==0)) {//是闰年 leapYear = true; }
- el-popover 点击input框出现table表,可点击选中,可拼音检索完回车选中
<template> <card> <el-popover placement="right" width="400" trigg ...
- C#处理不同的JSON数据
https://blog.csdn.net/dayu9216/article/details/78465681 网络中数据传输经常是xml或者json,现在做的一个项目之前调其他系统接口都是返回的xm ...
- 如何查看当前工程,已经安装的nuget包?
本文链接:https://blog.csdn.net/Microsoft_Mao/article/details/101161872如果想知道,当前解决方案(solution)里都安装了什么包,这里可 ...
- Java-POJ1009-Edge Detection(未完成,有C++代码)
RLE编码,还不会,先搬运一下大佬的代码,理解之后再用Java自己实现 #include <map> #include <vector> #include <cstdli ...
- Dockers的安装
添加yum源 #下载163的yum源到本地 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7 ...
- ansible笔记(11):tags的用法
你写了一个很长的playbook,其中有很多的任务,这并没有什么问题,不过在实际使用这个剧本时,你可能只是想要执行其中的一部分任务而已,或者,你只想要执行其中一类任务而已,而并非想要执行整个剧本中的全 ...
- 安装Nginx:通过yum方式
1.配置yum源: 在/etc/yum.repos.d中新建后缀为.repo的文件,此处以nginx.repo为例. 2.更新yum源: yum clean all yum makecache 3 ...
- WPF学习笔记一之布局
1.Canvas 布局控件Canvas主要用来画图,注意Canvas.Left/Right/Top/Bottom <Canvas Margin="10,10,10,10" B ...