Codeforces:779(div2)

前言

solve 4
rnk247
占了罚时的便宜。
CF不占罚时便宜就会被罚时占便宜
感觉这场似乎都是性质题,一眼看出性质就秒了,看不出就很难做出来了。

C似乎卡了很多人。但我做起来还好。
D2做不出来有些懊恼。
E是妙题。

题目

A

水题,保证male之间两两距离大于等于2即可。
然而一开考肚子就不舒服去了撤硕,回来网还卡。
过完已经差不多有2000人了。

B

样例奇数答案全是0,很有提示性。
发现当且仅当n为偶数时,奇偶配对gcd为2,其他时候都不合法。
那么答案显然就是 (n2!)2(\dfrac{n}{2}!)^2(2n!)2
由于A的影响和网络,通过还是一千多,当时已经感觉这场要凉…

C

当且仅当最大值在第一位的时候,答案是1。
然后每有一个数转到前面,答案最多+1,最少为2。
这是合法的必要条件,稍微想一下可以发现只要符合就可以类似链表插入的方法构造出来。
还好只需要判合法,不需要真的构造,不然其实挺麻烦的。
交完发现竟然只有100多了?大受震撼。
赛后看榜,似乎C确实卡了不少人,feedback 也有很多踩。

D1

位运算首先肯定是想按位考虑啦。
发现如果某一位1的总数和原来不一样,那肯定x的这一位是1.。
但是这个当这一位1的个数原来恰好为一半的时候会无法确定。
但是发现 l=0l=0l=0 的时候这种情况只会在 r=....111r=....111r=....111 的低位这些1的位置出现。
这些位置显然 xxx 填不填1都行。
然后D1就做完了。

至此:
请添加图片描述
结束:
请添加图片描述

坐牢开始了…

D2

没了 l=0l=0l=0 的限制。
先抱着侥幸心理交了一发 D1 的码,发现果然是假的
然后想了一些假做法,似乎都不太对。
但这题卡掉有些不应该,至少暴力 01trie01\text{trie}01trie 判合法的做法应该不难想到的。
在CF就情不自禁开始想魔法,反而忘记了这些很OI的做法了。

题解的做法确实很巧妙。
由于给的数全是互异的,所以我只需要保证异或完的数全是 [l,r][l,r][l,r] 即可,它们必然形成一个互异的排列。
考虑性质: a⊕b=1→(a⊕x)⊕(b⊕x)=1a\oplus b=1\to (a\oplus x)\oplus(b\oplus x)=1ab=1(ax)(bx)=1。反过来也是成立的。
所以如果 lll 为偶数,rrr 为奇数,那么给出的数就会两两组成 x⊕y=1x\oplus y=1xy=1 配对。
此时我最低位取 0/10/10/1 都可以,所以可以直接把范围缩小一半,递归的考虑。
直到不满足这个条件时,就必然会有无法配对的数。
它要么原来是 lll,要么原来是 rrr,分别暴力check一下即可。

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define ok debug("OK\n")
using namespace std;const int N=5e3+100;
const int mod=1e9+7;inline ll read(){ll x(0),f(1);char c=getchar();while(!isdigit(c)) {if(c=='-')f=-1;c=getchar();}while(isdigit(c)) {x=(x<<1)+(x<<3)+c-'0';c=getchar();}return x*f;
}
set<int>s1,s2;
int l,r;
void work(){s1.clear();s2.clear();l=read(),r=read();for(int i=l;i<=r;i++){s1.insert(read());}int mul(1);while(l%2==0&&r%2==1){mul<<=1;l>>=1;r>>=1;s2.clear();for(int i:s1){s2.insert(i>>1);}swap(s1,s2);}//printf("mul=%d (%d %d)\n",mul,l,r);for(int i:s1){if(s1.find(i^1)==s1.end()){int res=i^l,flag=1;for(int j:s1){int now=j^res;flag&=(now>=l&&now<=r);}if(flag) printf("%d\n",(i^l)*mul);else printf("%d\n",(i^r)*mul);return;}}assert(0);
}signed main(){#ifndef ONLINE_JUDGEfreopen("a.in","r",stdin);freopen("a.out","w",stdout);#endifint T=read();while(T--) work();return 0;
}
/*
*/

E

关键性质:每一步放置位置的价值都必须比上一步大。

不然对方就可以接着在原来的位置摆烂了。
那么合法的转移就变成了一个 DAG。
考虑一个点必胜,当且仅当它能控制所有比它大的必胜点。
曼哈顿距离不好上数据结构(我记得很早的一次模拟我还真用一个魔法主席树嗯维护了),转成切比雪夫距离之后就变成判断是否一个点集的所有点都在特定矩形内,如果是把该点加入点集。
别tm树状数组了。
维护横纵坐标的 max⁡,min⁡\max,\minmax,min 即可。

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define ok debug("OK\n")
using namespace std;const int N=2e3+100;
const int mod=1e9+7;inline ll read(){ll x(0),f(1);char c=getchar();while(!isdigit(c)) {if(c=='-')f=-1;c=getchar();}while(isdigit(c)) {x=(x<<1)+(x<<3)+c-'0';c=getchar();}return x*f;
}
int n,k;
int mxx,mnx,mxy,mny;int u[N*N],v[N*N],a[N][N];
signed main(){#ifndef ONLINE_JUDGEfreopen("a.in","r",stdin);freopen("a.out","w",stdout);#endifn=read();k=read();mnx=mny=n+n+1;mxx=mxy=-n-n;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){int x=read();u[x]=i;v[x]=j;}}for(int i=n*n;i>=1;i--){int x=u[i]+v[i],y=u[i]-v[i];if(mnx>=x-k&&mxx<=x+k&&mny>=y-k&&mxy<=y+k){//printf("%d\n",i);a[u[i]][v[i]]=1;mnx=min(mnx,x);mxx=max(mxx,x);mny=min(mny,y);mxy=max(mxy,y);	}		}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){putchar(a[i][j]?'M':'G');}putchar('\n');}return 0;
}
/*
*/

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

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

相关文章

我们为什么要搞长沙.NET技术社区(4)

我们为什么要搞长沙.NET技术社区&#xff08;4&#xff09;邹溪源&#xff0c;2019年3月7日Ps:文中的.NET 包括且不限定于传统.NET Framework技术和.NET Core技术。1. 楔子昨天&#xff08;2019年3月6日&#xff09;晚餐时间&#xff0c;有幸得到长沙技术圈资深.NET开发者出生…

P1290 欧几里德的游戏

P1290 欧几里德的游戏 题意&#xff1a; 给定两个正整数 M 和 N&#xff0c;从 Stan 开始&#xff0c;从其中较大的一个数&#xff0c;减去较小的数的正整数倍&#xff0c;当然&#xff0c;得到的数不能小于 0。然后是 Ollie进行同样的操作&#xff0c;直到一个人得到0&#…

C#机器学习之判断日报是否合格

原文作者&#xff1a;心莱科技肖鑫简单来说机器学习的核心步骤在于“获取学习数据&#xff1b;选择机器算法&#xff1b;定型模型&#xff1b;评估模型&#xff0c;预测模型结果”&#xff0c;下面本人就以判断日报内容是否合格为例为大家简单的阐述一下C#的机器学习。第一步&a…

SignalR2结合ujtopo实现拓扑图动态变化

上一篇文章基于jTopo的拓扑图设计工具库ujtopo&#xff0c;介绍了拓扑设计工具&#xff0c;这一篇我们使用SignalR2结合ujtopo实现拓扑图的动态变化。仅仅作为演示&#xff0c;之前的文章SignalR2简易数据看板演示&#xff0c;用一个小的示例演示了SignalR作为数据看板的用法&a…

Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)

来源&#xff1a;https://www.cnblogs.com/7tiny/p/10493805.html【前言】Ocelot是一个用.NET Core实现并且开源的API网关&#xff0c;它功能强大&#xff0c;包括了&#xff1a;路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterf…

博弈论(基础概念+例题)

博弈论(b站视频) 文章目录一些概念以Nim游戏为例Nim游戏介绍定义 必败/必胜局面必败/必胜局面的判定引理Nim游戏判定引理的等价命题有向图游戏对判定引理的数学描述-Sg函数有向图游戏的和题目&#xff1a;[有向图游戏][有向图游戏的和][构造/转化类]一些概念 以Nim游戏为例 Ni…

.NET Core 3.0 linux 部署小贴士

dotnet core 3.0 目前还是测试版&#xff0c;在linux下安装 sdk 需要有一些注意事项1.下载urlhttps://dotnet.microsoft.com/download/thank-you/dotnet-sdk-3.0.100-preview-009812-linux-x64-binaries2.安装指令mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.0.100…

PuppeteerSharp: 更友好的 Headless Chrome C# API

前端就有了对 headless 浏览器的需求&#xff0c;最多的应用场景有两个UI 自动化测试&#xff1a;摆脱手工浏览点击页面确认功能模式爬虫&#xff1a;解决页面内容异步加载等问题也就有了很多杰出的实现&#xff0c;前端经常使用的莫过于 PhantomJS 和 selenium-webdriver&…

中国.NET:东莞+长沙.NET俱乐部现场花絮及合肥、苏州、上海等地活动预

《传承有序》与微软技术的发展历程相似&#xff0c;微软俱乐部的发展经历着沉沉浮浮&#xff0c;曾经随着微软走向封闭与固执&#xff0c;.NET社区年轻一代的声音被忽略&#xff0c;.NET社区后继无人。社区的沉默是可怕的&#xff0c;很多社区沉寂消亡。但是在2018年&#xff0…

【AcWing 235. 魔法珠

【AcWing 235. 魔法珠 题意&#xff1a; 有n堆魔法珠&#xff0c;第i堆有ai个&#xff0c;两个人轮流进行以下操作&#xff1a; 当轮到某人操作时&#xff0c;如果每堆中魔法珠的数量均为 1&#xff0c;那么他就输了。 问谁赢谁输 题解&#xff1a; 经典博弈论问题 注意本…

Abp vNext 切换MySql数据库

Abp vNext是Abp的下一代版本&#xff0c;目前还在经一步完善&#xff0c;代码已经全部重写了&#xff0c;好的东西保留了下来&#xff0c;去除了很多笨重的东西&#xff0c;从官宣来看&#xff0c;Abp vNext主要是为了以后微服务架构而诞生的。从源码来看&#xff0c;Abp vNext…

采用.NET CORE的全异步模式打造一款免费的内网穿透工具--NSmartProxy

什么是NSmartProxy&#xff1f;NSmartProxy是一款免费的内网穿透工具。特点跨平台&#xff0c;客户端和服务端均可运行在MacOS&#xff0c;Linux&#xff0c;Windows系统上&#xff1b;使用方便&#xff0c;配置简单&#xff1b;多端映射&#xff0c;一个NSmart Proxy客户端可以…

Acwing 236. 格鲁吉亚和鲍勃(博弈论妙题)

Acwing 236. 格鲁吉亚和鲍勃 题意&#xff1a; 一排网格&#xff0c;将网格从左到右依次编号 1,2,3&#xff0c;…&#xff0c;并将 N 个西洋棋棋子放在不同的网格上&#xff0c;如下图所示&#xff1a; 两个人轮流移动棋子 每次玩家选择一个棋子&#xff0c;并将其向左移动…

.NET Core 跨平台 串口通讯 ,Windows/Linux 串口通讯

1&#xff0c;前言开发环境&#xff1a;在 Visual Studio 2017&#xff0c;.NET Core 2.x串口通讯用于设备之间&#xff0c;传递数据&#xff0c;物联网设备中广泛使用串口方式连接通讯&#xff0c;物联网通讯协议 &#xff1a;Modbus 协议 ASCII、RTU、TCP模式是应用层的协议&…

Game of Cards Gym - 102822G

Game of Cards Gym - 102822G 题意&#xff1a; 小兔子和小马喜欢玩奇怪的纸牌游戏。现在&#xff0c;他们正在玩一种叫做0123游戏的纸牌游戏。桌子上有几张牌。其中c0标记为0&#xff0c;c1标记为1&#xff0c;c2标记为2&#xff0c;c3标记为3。小兔子和小马轮流玩游戏&…

开源组件ExcelReport 3.x.x 使用手册(为.netcore而来

ExcelReport转眼已经开源4年了&#xff0c;期间有很长时间也停止了对它的维护。18年年末有人联系到我&#xff0c;说“兄弟&#xff0c;ExcelReport不错&#xff0c;但什么时候支持.netcore呢&#xff1f;”。我寥寥的回了几句搪塞的话&#xff0c;也没当回事。后来这兄弟又来问…

《.NET Core 和前后端那些事儿》技术交流活动纪实

长沙.NET技术社区.NET Core和前后端那些事儿技术交流纪实2019年3月10日&#xff0c;下午&#xff0c;在位于沁园春御院的长沙市互联网活动基地&#xff0c;在长沙市.NET技术社区的组织下&#xff0c;长沙市.NET技术圈第一次纯粹的技术沙龙在这里召开。这次活动总共参加人数超过…

10个小技巧助您写出高性能的ASP.NET Core代码

今天这篇文章我们来聊一聊如何提升并优化ASP.NET Core应用程序的性能&#xff0c;本文的大部分内容来自翻译&#xff0c;当然中间穿插着自己的理解&#xff0c;希望对大家有所帮助&#xff01;话不多说开始今天的主题吧&#xff01;我们都知道性能是公共网站取得成功的关键因素…

CF 1529D Kavi on Pairing Duty

CF 1529D Kavi on Pairing Duty 题意&#xff1a; 有2 * n个点&#xff0c;现在要求两个点连成线段&#xff0c;每个连法都可以得到n个线段&#xff0c;合法的连接方式为&#xff1a;连接的n个线段&#xff0c;任意两个线段要么长度相等&#xff0c;要么有包含关系 n<1e6 …

东莞.NET技术线下沙龙活动资料分享

今天天气虽然很不好&#xff0c;但不减广大.NET开发者的热情&#xff0c;仍然到场率很高。因图片还在整理中&#xff0c;暂时只发出个简单的活动资料整理分享&#xff0c;后续摄影师图片修图好后&#xff0c;再一并给到场者发送图片&#xff0c;和对活动的现场报道作更详细的图…