当前位置:网站首页>牛客小白月赛53 A-E
牛客小白月赛53 A-E
2022-07-30 21:05:00 【咸蛋_dd】
目录
A-Raining
原题链接<<看原题点这里
思路:简单 略
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,d,x,ans;
ans=0;
scanf("%d%d%d%d",&a,&b,&c,&d);
scanf("%d",&x);
if(a<x)
printf("%d ",x-a);
else
printf("0 ");
if(b<x)
printf("%d ",x-b);
else
printf("0 ");
if(c<x)
printf("%d ",x-c);
else
printf("0 ");
if(d<x)
printf("%d ",x-d);
else
printf("0 ");
return 0;
}
B-Kissing
思路:把公式展开然后化简一下就变成了,根据1-n的求和公式即可求出前n项为(n)*(n+1)-n,因为答案会很大所以要模一下,但是过程量会很大,所以最后结果模是不行的,必须要每一项都要模
#include <bits/stdc++.h>
using namespace std;
const int N=998244353;
int main()
{
long long int n;
scanf("%lld",&n);
printf("%lld\n",((n%N)*((n+1)%N)-n%N)%N);
return 0;
}
C. Missing
思路:模拟题,照着题目说的写就行
注意 按照字典序输出可以用string,因为可以直接sort
#include <bits/stdc++.h>
using namespace std;
const int N=110;
string s,ss[N],sss[N];
queue <int> q;
int main()
{
int n,i;
cin>>s;
cin>>n;
int len=s.length();
for(i=1;i<=n;i++)
{
cin>>ss[i];
}
int res=0;
for(i=1;i<=n;i++)
{
int k=ss[i].length();
if(k!=len)
continue;
int sum=0;
for(int j=0;j<len;j++)
{
if(ss[i][j]==s[j])
sum++;
}
if(res<sum)
{
res=sum;
while(!q.empty())
q.pop();
q.push(i);
}
else if(res==sum)
q.push(i);
}
if(res==0)
{
sort(ss+1,ss+1+n);
for(i=1;i<=n;i++)
cout<<ss[i]<<endl;
}
else
{
int sum=q.size();
i=1;
while(!q.empty())
{
sss[i]=ss[q.front()];
q.pop();
i++;
}
sort(sss+1,sss+1+sum);
for(i=1;i<=sum;i++)
cout<<sss[i]<<endl;
}
return 0;
}
D.Breezing
思路:每两个数之间差值最大,那么就是只能取1或者bi,运用dp,两钟情况分别算,最后取个最大值就行
#include <bits/stdc++.h>
using namespace std;
const int N=100010;
typedef long long int ll;
int main()
{
ll n,i;
ll a[N],dp[N][3];//dp[i][1]表示第i个数取1的答案
cin>>n; //dp[i][2]表示第i个数取b[i]的答案
for(i=1;i<=n;i++) cin>>a[i];
dp[1][1]=0;
dp[1][2]=0;
for(i=2;i<=n;i++)
{
dp[i][1]=max(dp[i-1][1],dp[i-1][2]+a[i-1]-1);
dp[i][2]=max(dp[i-1][1]+a[i]-1,dp[i-1][2]+abs(a[i]-a[i-1]));
}
cout<<max(dp[n][1],dp[n][2])<<endl;
return 0;
}
E.calling
思路:贪心思想,我们会发现,当正方形边长是6的时候,没有空余,边长是5的时候,会剩下11个变成为一的方块,边长为4时,会剩下5个变成为2的方块,以此类推,我们让每个正方形都填满,就是最好的情况。
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
int main()
{
ll t,k,n,s,i;
ll a[10];
cin>>t;
while(t--)
{
cin>>s;
for(i=1;i<=6;i++) cin>>a[i];
if(a[6]!=0)
s=s-a[6];
if(a[5]!=0)
{
s=s-a[5];
a[1]=a[1]-a[5]*11;
}
if(a[4]!=0)
{
s=s-a[4];
a[2]=a[2]-5*a[4];
if(a[2]<=0)
{
a[1]-=-a[2]*4;
a[2]=0;
}
}
if(a[3]!=0)
{
if(a[3]%4==0)
s=s-a[3]/4;
else
{
s=s-a[3]/4-1;
k=a[3]%4;
if(k==1)
{
if(a[2]>0)
{
a[2]=a[2]-5;
a[1]=a[1]-7;
}
else a[1]-=27;
if(a[2]<0)
{
a[1]-=-a[2]*4;
a[2]=0;
}
}
else if(k==2)
{
if(a[2]>0)
{
a[2]=a[2]-3;
a[1]=a[1]-6;
}
else a[1]-=18;
if(a[2]<0)
{
a[1]-=-a[2]*4;
a[2]=0;
}
}
else if(k==3)
{
if(a[2]>0)
{
a[2]=a[2]-1;
a[1]=a[1]-5;
}
else a[1]-=9;
if(a[2]<0)
{
a[1]-=-a[2]*4;
a[2]=0;
}
}
}
}
if(a[2]>0)
{
if(a[2]%9==0)
s=s-a[2]/9;
else
{
s=s-a[2]/9-1;
k=a[2]%9;
a[1]=a[1]-(9-k)*4;
}
}
if(a[1]>0)
{
if(a[1]%36==0)
s=s-a[1]/36;
else
s=s-a[1]/36-1;
}
//for(i=1;i<=6;i++)
//cout<<a[i]<<' ';
if(s>=0)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}
F题还没做,等会补
边栏推荐
猜你喜欢
【深度学习】目标检测|SSD原理与实现
微信读书,导出笔记
KingbaseESV8R6 snapshot too old的配置和测试
MySQL ODBC驱动简介
PR视频剪辑软件教程
GPGGA NTRIP RTCM 笔记
啊?现在初级测试招聘都要求会自动化了?
QUALITY-GATED CONVOLUTIONAL LSTM FOR ENHANCING COMPRESSED VIDEO
WeChat reading, export notes
Use the map function to operate on each element in the list It seems that you don't need a map
随机推荐
关于MySQL主从复制的数据同步延迟问题
为什么那么多自学软件测试的人,后来都放弃了...
Mysql——字符串函数
7、MySQL Workbench 导出导入数据库
bebel系列- 插件开发
[Typora] This beta version of Typora is expired, please download and install a newer version.
如何制作deb包
awk笔记
MySQL 删除表数据,重置自增 id 为 0 的两个方式
5分钟搞懂MySQL - 行转列
Redis数据更新,是先更新数据库还是先更新缓存?
ENS 表情包域名火了!是炒作还是机遇?
是对称矩阵的对角化
LeetCode·每日一题·952.按公因数计算最大组件大小·并查集
对一次生产环境产生OOM的记录,结论:除非在自己完全有把握的情况下,否则不要偷懒查询无用字段
Use the map function to operate on each element in the list It seems that you don't need a map
MySQL的主从复制
tcp协议传输中的粘包问题
巴比特 | 元宇宙每日必读:洗牌将至,数藏行业下半场是否会迎来新一批领头羊?是否会出现新玩法?...
多线程获取官方汇率