牛客练习赛50-记录

正题

比赛链接:https://ac.nowcoder.com/acm/contest/1080#question


成绩

本届
在这里插入图片描述
升高二届
在这里插入图片描述


总结

以后还是不要写太多自己不擅长的写法,空间要多检查,不要像个傻逼一样啥都写错。

尽量不要为了省一点空间和时间写一些不舒服的东西,尽量在能通过的情况下自己怎么舒服怎么来就好了。


T1:tokitsukazeandConnectionT1:tokitsukaze\ and\ ConnectionT1:tokitsukaze and Connection

题目大意

给出一个字符串,求里面的字母是不是都是连续的。

解题思路

暴力枚举,开个桶存储之前有没有出现过。

codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n;
bool v[2333],flag;
char s[1000];
int main()
{scanf("%d%s",&n,s+1);for(int i=1;i<=n;i++){if(i==1||s[i]!=s[i-1]){if(v[s[i]]) {flag=1;break;}else v[s[i]]=1;}}if(flag) printf("NO");else printf("YES");
}

T2:tokitsukazeandHashTableT2:tokitsukaze\ and\ Hash\ TableT2:tokitsukaze and Hash Table

题目大意

nnn个数字插入长度为nnn的哈希表,数值为x%nx\%nx%n,求最后hashhashhash表的状态。

解题思路

考虑到暴力枚举肯定会被卡成O(n2)O(n^2)O(n2),所以我们用树状数组+二分可以做到O(log⁡2n)O(\log^2n)O(log2n)找到下一个空位,若没有空位我们就直接用最前方的空位即可。

codecodecode

#include<cstdio>
#define lowbit(x) x&-x
using namespace std;
const int N=1100000;
int n,op,v[N],t[N];
void add(int x,int val)
{while(x<=n){t[x]+=val;x+=lowbit(x);}
}
int ask(int x)
{int ans=0;while(x){ans+=t[x];x-=lowbit(x);}return ans;
}
int main()
{scanf("%d",&n);op=1;for(int i=1;i<=n;i++){int X,x;scanf("%d",&X);x=X%n+1;int l=x,r=n,w=ask(x-1);while(l<=r){int mid=(l+r)/2;if(ask(mid)-w==mid-(x-1)) l=mid+1;else r=mid-1;}if(l<=n&&!v[l])v[l]=X+1,add(l,1);else{while(v[op])op++;v[op]=X+1;add(op,1);}}for(int i=1;i<=n;i++)printf("%d ",v[i]-1);
}

T3:tokitsukazeandSoldierT3:tokitsukaze\ and\ SoldierT3:tokitsukaze and Soldier

题目大意

若干个人,第iii个战力为viv_ivi,若这个人在团里要求不超过sis_isi个人,选择若干个人能组成的最大战斗力。

解题思路

这个十分显然的贪心题目,我们先按照sis_isi从大到小排序,然后我们可以开始枚举,我们发现我们枚举到iii时人数不能超过sis_isi个。我们可以维护一个优先队列,每次sis_isi缩小时我们就将价值最小的给弹出来就好了。

codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define ll long long
using namespace std;
const ll N=110000;
priority_queue<ll> q;
struct node{ll v,s;
}a[N];
ll n,ans,maxs;
bool cMp(node x,node y)
{return x.s>y.s;}
int main()
{scanf("%lld",&n);for(ll i=1;i<=n;i++)scanf("%lld%lld",&a[i].v,&a[i].s);sort(a+1,a+1+n,cMp);for(ll i=1;i<=n;i++){while(q.size()>=a[i].s)ans+=q.top(),q.pop();q.push(-a[i].v);ans+=a[i].v;maxs=max(maxs,ans);}printf("%lld",maxs);
}

T4:tokitsukazeandEventT4:tokitsukaze\ and\ EventT4:tokitsukaze and Event

题目大意

一张无向图,普通模式下边权为aia_iai,夜战模式边权为bib_ibi。在难度kkk时可以在k∼nk\sim nkn中任意一个点转换为夜战模式,但不能转回来。
求难度在1∼n1\sim n1n的情况下分别的最短路。

解题思路

我们设dis1idis1_idis1i表示普通模式下s∼is\sim isi的最短路长度,dis2idis2_idis2i表示夜战模式下i∼ti\sim tit的最短路。

对于难度为kkk答案显然为min{dis1i+dis2i}(i≥k)min\{dis1_i+dis2_{i}\}(i\geq k)min{dis1i+dis2i}(ik)。我们倒着枚举即可。

codecodecode

#include<cstdio>
#include<cstring>
#include<queue>
#define ll long long
using namespace std;
const ll N=100010,M=200010;
struct node{ll pos,dis;bool operator<(const node &x)const{return x.dis<dis;}
};
struct edge_node{ll to,next,a,b;
}a[M];
priority_queue<node> q;
ll tot,ls[N],dis[N],dis2[N],n,m,s,t,f[N],ans;
bool v[N];
void addl(ll x,ll y,ll A,ll b)
{a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;a[tot].a=A;a[tot].b=b;
}
void dij(ll s)
{dis[s]=0;q.push((node){s,0});while(!q.empty()){node tmp=q.top();q.pop();ll x=tmp.pos;if(v[x]) continue;v[x]=1;for(ll i=ls[x];i;i=a[i].next){ll y=a[i].to;if(dis[y]>dis[x]+a[i].a){dis[y]=dis[x]+a[i].a;if(!v[y])q.push(node{y,dis[y]});}}}
}
void dij2(ll s)
{dis2[s]=0;memset(v,0,sizeof(v));q.push((node){s,0});while(!q.empty()){node tmp=q.top();q.pop();ll x=tmp.pos;if(v[x]) continue;v[x]=1;for(ll i=ls[x];i;i=a[i].next){ll y=a[i].to;if(dis2[y]>dis2[x]+a[i].b){dis2[y]=dis2[x]+a[i].b;if(!v[y])q.push(node{y,dis2[y]});}}}
}
int main()
{scanf("%lld%lld",&n,&m);memset(dis2,127,sizeof(dis2));memset(dis,127,sizeof(dis));for(ll i=1;i<=m;i++){ll x,y,A,b;scanf("%lld%lld%lld%lld",&x,&y,&A,&b);addl(x,y,A,b);addl(y,x,A,b);}scanf("%lld%lld",&s,&t);dij(s);dij2(t);ans=1e18;for(ll i=n;i>=1;i--)ans=min(ans,dis[i]+dis2[i]),f[i]=ans;for(ll i=1;i<=n;i++)printf("%lld\n",f[i]);
}

T5:tokitsukazeandSegmentationT5:tokitsukaze\ and\ SegmentationT5:tokitsukaze and Segmentation

题目大意

给出一串数字,求将数字划分要求

  1. 没有前导0
  2. 每个部分都能被333整除

求划分方案数。

解题思路

很显然的数位dpdpdp
fi,j,0/1f_{i,j,0/1}fi,j,0/1表示到第iii为,当前划分的数字之和为jjj,是不是纯0构成的。

codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=110000,XJQ=998244353;
ll n,f[N][3][2];
char s[N];
int main()
{scanf("%lld%s",&n,s+1);for(int i=1;i<=n;i++)s[i]-='0';f[1][s[1]%3][s[1]!=0]=1;for(ll i=1;i<=n;i++){(f[i][s[i]%3][s[i]!=0]+=f[i-1][0][0]+f[i-1][0][1])%=XJQ;for(ll j=0;j<3;j++)(f[i+1][(j+s[i+1])%3][1]+=f[i][j][1])%=XJQ;}printf("%lld",(f[n][0][0]+f[n][0][1])%XJQ);
}

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

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

相关文章

物联网框架ServerSuperIO在.NetCore实现跨平台的实践路线

正所谓天下大势&#xff0c;不跟风不行。你不跨平台&#xff0c;很low嘛。java说&#xff1a;你们能跨嘛&#xff0c;跨给我看看。C#说&#xff1a;不要强人所难嘛。java说&#xff1a;能部署在云上吗&#xff1f;docker&#xff1f;微服务&#xff1f;C#说&#xff1a;不要强人…

使用WebApiClient请求和管理Restful Api

前言本篇文章的内容是WebApiClient应用说明篇&#xff0c;如果你没有了解过WebApiClient&#xff0c;可以先阅读以下相关文章&#xff1a;WebApi client 的面向切面编程我来给.Net设计一款HttpClient.Net45下HttpClient的几个缺陷.net的retrofit--WebApiClient库.net的retrofit…

拥抱.NET Core系列:MemoryCache 缓存选项

MSCache项目MSCache 目前最新的正式版是 2.0.0&#xff0c;预览版是2.1.0&#xff0c;会与 .NETCore 2.1 一起发布。本篇用了2.0.0版本开源在 GitHub 上&#xff0c;仓库地址是&#xff1a;https://github.com/aspnet/CachingNuGet地址为&#xff1a;https://www.nuget.org/pac…

牛客练习赛51-记录

正题 比赛链接:https://ac.nowcoder.com/acm/contest/1083#question 成绩 可怜的zycT3zycT3zycT3被n0n0n0卡了半天&#xff0c;这里感谢一下排雷 总结 比赛状态较好&#xff0c;后面没有T6T6T6的题解 T1:abcT1:abcT1:abc 题目大意 给出一个字符串&#xff0c;求有多少个abc…

Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警

前言这次主要分享通过Metrics.net influxdb grafana 构建WebAPI的自动化监控和预警方案。通过执行耗时&#xff0c;定位哪些接口拖累了服务的性能&#xff1b;通过请求频次&#xff0c;设置适当的限流和熔断机制&#xff0c;拦截非法或不合理的请求&#xff0c;保障服务的可用…

EF Core 2.1路线图:视图、GROUP BY和惰性加载

Entity Framework Core一直追随着初始Entity Framework的发展&#xff0c;并不断推陈出新。它首先推出的是对视图的支持&#xff0c;这听起来有些耸人听闻。在即将推出的EF Core 2.1之前&#xff0c;EF Core并未对数据库视图提供官方的支持&#xff0c;也不支持缺少主键的数据库…

计算机网络总结

一、计算机网络体系 &#xff08;1&#xff09;OSI分层 &#xff08;7层&#xff09; 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 &#xff08;2&#xff09;TCP/IP分层&#xff08;4层&#xff09; 网络接口层、 网际层、运输层、 应用层。 &#xff0…

从技术角度讨论微服务

本文希望从技术角度来探讨下微服务&#xff0c;因此&#xff0c;不会过多地谈及如何根据业务进行微服务划分&#xff0c;更多是介绍微服务的相关技术&#xff0c;微服务的业务划分方法可参考“领域驱动设计“相关方法论。微服务的两个程度一、服务化复杂的单体架构会有以下的挑…

jzoj6344-[NOIP2019模拟2019.9.7]Huge Counting【组合数,状压dp】

正题 题目大意 定义函数f(x)(xf(x)(xf(x)(x为一个序列))) 若任意一个xi1x_i1xi​1那么有f(x)1f(x)1f(x)1 若有一个xi0x_i0xi​0那么有f(x)0f(x)0f(x)0 其他的&#xff0c;有f(x)(∑j1nf(x1...,xj−1,...xn))%2f(x)(\sum_{j1}^nf(x_{1}...,x_j-1,...x_n))\% 2f(x)(j1∑n​f(x1​…

拥抱.NET Core系列:MemoryCache 缓存域

MSCache项目MSCache 目前最新的正式版是 2.0.0&#xff0c;预览版是2.1.0&#xff0c;会与 .NETCore 2.1 一起发布。本篇用了2.0.0版本开源在 GitHub 上&#xff0c;仓库地址是&#xff1a;https://github.com/aspnet/CachingNuGet地址为&#xff1a;https://www.nuget.org/pac…

牛客小白月赛17-记录(附题解)

正题 比赛链接:https://ac.nowcoder.com/acm/contest/1085#question 成绩 总结 除了那道积分数学其他还好 后面没有FFF题的题解 T1:小sun的假期T1:小sun的假期T1:小sun的假期 题目大意 长度为nnn的序列&#xff0c;mmm个区间&#xff0c;求最大的没有被任何区间覆盖的区间…

安全、高效的MySQL DDL解决方案

MySQL作为目前应用最广泛的开源关系型数据库&#xff0c;是许多网站、应用和商业产品的主要数据存储。在生产环境&#xff0c;线上数据库常常面临着持续的、不断变化的表结构修改&#xff08;DDL&#xff09;&#xff0c;如增加、更改、删除字段和索引等等。其中一些DDL操作在M…

DNS总结

一、DNS &#xff08;1&#xff09;简介 域名系统&#xff08;英文&#xff1a;Domain Name System&#xff0c;缩写&#xff1a;DNS&#xff09;是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便地访问互联网。 DNS 协议也是…

谈谈在.NET Core中使用Redis和Memcached的序列化问题

前言在使用分布式缓存的时候&#xff0c;都不可避免的要做这样一步操作&#xff0c;将数据序列化后再存储到缓存中去。序列化这一操作&#xff0c;或许是显式的&#xff0c;或许是隐式的&#xff0c;这个取决于使用的package是否有帮我们做这样一件事。本文会拿在.NET Core环境…

牛客练习赛52-记录

正题 比赛链接:https://ac.nowcoder.com/acm/contest/1084#question 成绩 T1:T1:T1:数数 题目大意 给出nnn&#xff0c;求∑i1n∑j1n(i∗j)\sum_{i1}^n \sum_{j1}^n (i*j)i1∑n​j1∑n​(i∗j) 和 ∏i1n∏j1n(i∗j)\prod_{i1}^n\prod_{j1}^n(i*j)i1∏n​j1∏n​(i∗j) 解题…

Windows Developer Day - Windows AI Platform

本次 Windows Developer Day&#xff0c;最值得期待的莫过于 Windows AI Platform 了&#xff0c;可以说是千呼万唤始出来。观看直播的开发者们&#xff0c;留言最多的也是 Windows AI Platform。下面结合微软提供的展示过程&#xff0c;文档和 Git Sample 来详细分析一下。基础…

EF Core:一统SQL和NoSQL数据库

推出EF Core的初衷之一&#xff0c;就是开发出一种可在很少甚至不更改代码的情况下使用SQL和NoSQL数据库的模型。Microsoft正向此目标迈出第一步&#xff0c;发布了用于Azure Cosmos DB的实验性EF提供程序&#xff08;provider&#xff09;。据EF 2.1路线图介绍&#xff1a;Cos…

Java 并发总结——进程与线程

一、进程与线程 &#xff08;1&#xff09;线程与进程 进程是程序在一个数据集合上运行的过程&#xff0c;它是系统进行资源分配和调度的一个独立单位。进程实体由程序段&#xff0c; 数据段 PCB&#xff08;进程控制块&#xff09;组成。 线程可以看做轻量级进程&#xff0c;…

.NET Core使用skiasharp文字头像生成方案(基于docker发布)

一、问题背景目前.NET Core下面针对于图像处理的库微软并没有集成&#xff0c;在.NET FrameWork下我们已经习惯使用System.Drawing类库做简单的图像处理&#xff0c;到了.NET Core下一脸懵逼的我&#xff0c;只能百度谷歌看看有没啥解决方案&#xff0c;好在网上资料也多&#…

jzoj6375-华灵「蝶妄想」【结论题】

正题 题目大意 n∗mn*mn∗m填(((或者)))。求一个方案使得最多的行和列匹配。 解题思路 我们先考虑nnn或mmm为奇数&#xff0c;那么显然奇数的肯定不必配&#xff0c;那么就只需要考虑行或列即可。 若nnn和mmm都为偶数时 我们发现在边边的行列不可能都匹配上&#xff0c;那就…