AtCoder Regular Contest 105 部分 NIM游戏

TESyyds,本来以为又要3:1,结果创造历史!!!非常激动啊好久好久没看过让二追三了。
无缝衔接回旋踢,qa插眼we。送给雷达哥

A - Fourtune Cookies

签到题

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int mod=1e9+7;
int main()
{IO;int T=1;//cin>>T;for(int ca=1;ca<=T;ca++){int a[4];for(int i=0;i<4;i++) cin>>a[i];sort(a,a+4);if(a[0]+a[1]+a[2]==a[3]||a[0]+a[2]==a[1]+a[3]||a[0]+a[3]==a[1]+a[2])cout<<"Yes\n";elsecout<<"No\n";}return 0;
}

B - MAX-=min

做的时候感觉和求gcd的过程有点像,于是直接猜结论求序列gcd直接就过了

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int mod=1e9+7;
const int N=100010;
int a[N];
int n;
int gcd(int a,int b)
{return b?gcd(b,a%b):a;
}
int main()
{IO;int T=1;//cin>>T;for(int ca=1;ca<=T;ca++){// multiset<int> s;// cin>>n;// for(int i=1;i<=n;i++) // {//     int a;//     cin>>a;//     s.insert(a);// }// while(1)// {//     auto b=s.begin(),e=s.end();//     e--;//     int x=*b,y=*e;//     if(x==y) break;//     s.erase(e);//     s.insert(y-x);// }// cout<<*s.begin()<<'\n';cin>>n;for(int i=1;i<=n;i++) cin>>a[i];int d=a[1];for(int i=2;i<=n;i++) d=gcd(d,a[i]);cout<<d<<'\n';}return 0;
}

C - Camels and Bridge

大佬题解
刚开始看了半天题,不知道从何入手,然后发现N非常小于是考虑枚举排列。但是之后就不会做了。

看了题解之后发现自己陷入了一个误区——桥的排序,本题每部分桥都是一个限制条件,而并不用关系桥的顺序。

排序定后现在要求1~n的最小距离,考虑设计dp
状态表示:fif_ifi表示1→i1\to i1i的最小距离
状态转移:fi=max(fi,fj+len)f_i=max(f_i,f_j+len)fi=max(fi,fj+len),对于当前考虑的骆驼和之前的骆驼满足所有桥的条件,因而要考虑之前的所有骆驼取距离上限。
len可以预处理前缀然后二分体重快速求得详细看代码

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<string>
#include<vector>
#include<cstdio>
#include<random>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#include<unordered_set>
#define v first
#define l second 
using namespace std;
mt19937 rnd(233);
typedef long long ll;
typedef pair<int,int> pii;
const int mod=1e9+7;
const int N=100010;
int w[12];
pii bdg[N];
int n,m;
int a[12];
ll f[12],s[12];
int len[N],b[N];
int main()
{IO;int T=1;//cin>>T;for(int ca=1;ca<=T;ca++){cin>>n>>m;int mx=0;for(int i=1;i<=n;i++) {cin>>w[i];mx=max(mx,w[i]);}for(int i=1;i<=m;i++) cin>>bdg[i].l>>bdg[i].v;sort(bdg+1,bdg+1+m);if(mx>bdg[1].v) {cout<<-1<<'\n';continue;}for(int i=1;i<=n;i++) a[i]=i;for(int i=1;i<=m;i++) len[i]=max(len[i-1],bdg[i].l);for(int i=1;i<=m;i++) b[i]=bdg[i].v;ll res=1e15;do{memset(f,0,sizeof f);for(int i=1;i<=n;i++) s[i]=s[i-1]+w[a[i]];for(int i=2;i<=n;i++)for(int j=1;j<i;j++){int tmp=s[i]-s[j-1];int p=lower_bound(b+1,b+1+m,tmp)-b-1;f[i]=max(f[i],f[j]+len[p]);}res=min(res,f[n]);}while(next_permutation(a+1,a+1+n));cout<<res<<'\n';}return 0;
}

总结:由于自己显然桥的顺序这个误区,一直不知道从何入手,没能够充分挖掘题目的条件,进一步简化已知条件。

D - Let’s Play Nim

大佬题解,直接copy大佬的题解,写的非常非常非常清晰,一下子就明白了,难道这就是考智商的题吗
在这里插入图片描述

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<string>
#include<vector>
#include<cstdio>
#include<random>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#include<unordered_set>
using namespace std;
mt19937 rnd(233);
typedef long long ll;
typedef pair<int,int> pii;
const int mod=1e9+7;
const int N=100010;
int n;
map<int,int> mp;
int main()
{IO;int T=1;cin>>T;for(int ca=1;ca<=T;ca++){cin>>n;mp.clear();for(int i=1;i<=n;i++){int a;cin>>a;mp[a]++;}if(n&1)cout<<"Second\n";else{bool ok=0;for(auto t:mp)if(t.second&1) ok=1;if(ok) cout<<"First\n";else cout<<"Second\n";}}return 0;
}

总结:大佬题解的思路非常清晰,首先由于n的奇偶性会影响最终NIM游戏的先手顺序于是就分奇偶,然后考虑先手如何能让自己在最终的NIM的游戏中获得胜利,一步步趋近答案值得学习。

要加油哦~

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

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

相关文章

Microsoft Tech Summit 2018 课程简述:利用 Windows 新特性开发出更好的手绘视频应用...

概述Microsoft Tech Summit 2018 微软技术暨生态大会将于10月24日至27日在上海世博中心举行&#xff0c;这也会是国内举办的最后一届 Tech Summit&#xff0c;2019 年开始会以 Microsoft Ignite Tour 的形式出现&#xff0c;大家可以在官网查看本次会议信息&#xff1a;https:/…

牛牛和牛可乐的赌约

来源&#xff1a;牛客网&#xff1a; 牛牛和牛可乐的赌约 时间限制&#xff1a;C/C 2秒&#xff0c;其他语言4秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 牛可乐发明了一种n面骰子&#xff08;点数分别从1{}1到{}nn&…

GitHub 发布 2018 年开源项目趋势预测

Github 发布了一篇博客&#xff0c;预测了 2018 年开源项目的发展趋势&#xff0c;这些趋势可以帮助开发人员在共享知识的同时&#xff0c;寻求方法简化流程&#xff0c;并 get 新技能。去年&#xff0c;Github 有来自将近 200 个国家的 2400 万的开发者聚集在一起&#xff0c;…

.NETCore 简单且高级的库 csredis v3.0.0

前言.NETCore 从1.0发布历经坎坷&#xff0c;一开始各种库缺失到现在的部分完善&#xff0c;走到今天实属不易。比如 redis-cli SDK 简直是坑出不穷。过去 .net 最有名望的 ServiceStack.Redis 早已沦为商业用途&#xff0c;在 .NETCore 中使用只能充值&#xff1b;后来居上的 …

github开源项目免费使用Azure PipeLine

微软收购Github后,很多人猜想微软可能会砍掉VSTS,然而事实VSTS并没有砍掉,关于Azure Devops的详细信息可以查看 这篇博客,如果想查看原文也可以从链接里提供的原始地址里查看.今天要介绍的是做Azure devops的ci部分:Azure Pipeline. VSTS升级到Azure Devops之后对开源开发者带来…

如何向微软 Docs 和本地化社区提交翻译贡献

Docs &#xff08;docs.microsoft.com&#xff09;是微软新版的文档网站&#xff0c;重新规划了各项技术栈的文档结构&#xff0c;看起来比 MSDN 可读性更好。虽然 Docs 提供了各种语言的版本&#xff0c;但大多是机器翻译&#xff0c;某些中文文档基本读不下去。因此微软鼓励社…

API测试工具SoapUI Postman对比分析

最近公司要引入API测试工具&#xff0c;经过调查和了解&#xff0c;最终决定在SoapUI 和 Postman两种工具之间做一个选择&#xff0c;两种工具在业界都很有名&#xff0c;相信很多人两种工具也都曾使用过。SoapUISoapUI是一个开源测试工具&#xff0c;通过soap/http来检查、调用…

在 Windows 上可以用 Docker 吗?| 洞见

简介Docker&#xff0c;或者准确一点说&#xff0c;容器技术&#xff0c;在近几年里几乎成为了应用分发和集群部署的默认技术了。背景部分&#xff0c;如果感兴趣&#xff0c;请参考闲谈集群管理模式一文。Docker 生态的成熟还有赖于其周边工具和实践模式的兴起。比如&#xff…

泰勒及洛朗展开学习笔记

2020-1024996 最近太忙了&#xff0c;今天好像没有写题&#xff0c;不过研究了一下数学hh。 2020.10.24今天又有工数课&#xff0c;我又没听&#xff0c;我记得上节工数课我看了换根dp&#xff0c;哦&#xff1f;好吧我没听过工数&#xff0c;那没事了&#xff0c;不过这次不敢…

SmartSql For Asp.Net Core 最佳实践

常规操作安装 SmartSqlInstall-Package SmartSql安装 SmartSql.DIExtensionInstall-Package SmartSql.DIExtension配置SmartSqlConfig.xml写库&#xff08;Write&#xff09;必选 唯一节点读库&#xff08;Read&#xff09;可选 多节点配置PostgresqlPostgresql 客户端 NpgsqlI…

课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018

微软技术暨生态大会&#xff08;Tech Summit&#xff09;&#xff0c;2018 年在上海世博中心召开。这是最后一次的 Tech Summit 了&#xff1b;明年开始&#xff0c;中国大陆地区就要和其他国家和地区一样&#xff0c;进行全球 Ignite Tour 了。我也有幸成为分会场讲师团队的一…

Ocelot简易教程(五)之集成IdentityServer认证以及授权

最近比较懒&#xff08;编者注&#xff1a;作者不是真懒&#xff0c;而是在憋大招&#xff0c;他最近实现了把Ocelot的配置使用数据库存储&#xff09;&#xff0c;所以隔了N天才来继续更新第五篇Ocelot简易教程&#xff0c;本篇教程会先简单介绍下官方文档记录的内容然后在前几…

ASP.NET Core 集成测试中结合 WebApplicationFactory 使用 SQLite 内存数据库

SQLite 内存数据库&#xff08;in-memory database&#xff09;的连接字符串是 Data Source:memory: &#xff0c;它的特点是数据库连接一关闭&#xff0c;数据库就会被删除。而使用 services.AddDbContext 通过连接字符串配置 EF Core 时&#xff0c;EF Core 会在每次查询或…

mex性质学习

E.Complicated Computations 如果一个区间的mexamexamexa&#xff0c;满足以下条件&#xff1a; 区间未出现aaa区间出现1→a−11\to a-11→a−1 因此若考虑是否存在一个区间的mex值是aaa&#xff0c;我们尝试把整个区间以aaa为端点划分成若干段&#xff0c;只要每一段内&…

AServer - 基于Asp.net core Kestrel的超迷你http服务器

AServer是基于ASP.NET Core Kestrel封装的一个超迷你http服务器。它可以集成进你的Core程序里&#xff0c;用来快速的响应Http请求&#xff0c;而不需要集成整个ASP.NET Core MVC 框架。一&#xff1a;什么是ASever&#xff1f;AServer就像它的名字一样&#xff0c;Just a serv…

基于Service fabric + Ocelot + Identity Server4 + 52ABP 的案例展示

10.24-27 大会Microsoft Tech Summit 2018 在上海举办&#xff0c;我 有幸受邀成为这场大会的讲师。Microsoft Tech Summit 2018 微软技术暨生态大会将于10月24日至27日在上海世博中心举行&#xff0c;这也会是国内举办的最后一届 Tech Summit&#xff0c;2019 年开始会以 Micr…

Feature Flag 功能发布控制

背景产品在新功能发布前&#xff0c;可能会采取小流量测试的方式&#xff0c;或者在确定方案前使用A/B测试来衡量。一般开发人员会跟运维同学合作&#xff0c;通过一些现有平台切换机器或者流量来实现。本文介绍了另外一种简便的方式&#xff0c;并解释了其在持续集成上的应用&…

SmartSql 动态代理仓储

SmartSql源码&#xff1a;https://github.com/Ahoo-Wang/SmartSql1|1简介动态代理仓储(SmartSql.DyRepository)组件是SmartSql非常独特的功能&#xff0c;它能简化SmartSql的使用。对业务代码除了配置几乎没有侵入。可以说使用SmartSqlContainer是原始方法&#xff0c;而DyRepo…

Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据

本来这篇文章在昨天晚上就能发布的&#xff0c;悲剧的是写了两三千字的文章居然没保存&#xff0c;结果我懵逼了。今天重新来写这篇文章。今天我们就一起来探讨下如何重写Ocelot配置文件的存储方式以及获取方式。作者&#xff1a;依乐祝原文地址&#xff1a;https://www.cnblog…

.NET Core实践系列之SSO-跨域实现

前言接着上篇的《.net core实践系列之SSO-同域实现》&#xff0c;这次来聊聊SSO跨域的实现方式。这次虽说是.net core实践&#xff0c;但是核心点使用jquery居多。建议看这篇文章的朋友可以先看上篇《.net core实践系列之SSO-同域实现》做一个SSO大概了解。源码地址&#xff1a…