「ARC 124A」LR Constraints

Link.

我们可以把 \(1\sim n\) 个盒子里能放的球的编号集合全部求出来。然后就直接来。

注意题目已经给出了 \(k\) 个球的位置,所以「Note that for each integer \(i\) from \(1\) through \(K\), there must be at least one card on which we write \(i\).」这个限制不用管。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define int ll
#define len(x) ((int)(x).size())
#define all(x) (x).begin(),(x).end()
const int N=1100,MOD=998244353;
int n,k,ts[N],tek[N],fin[N],Rs[N];
set<int> rs[N];
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
cin>>n>>k,memset(fin,-1,sizeof fin);
for(int i=1; i<=k; ++i) {
char c; cin>>c;
ts[i]=(c=='R');
cin>>tek[i];
Rs[tek[i]]=ts[i];
}
for(int i=1; i<=k; ++i) {
if(~fin[tek[i]]) return puts("0"),0;
fin[tek[i]]=i;
}
for(int i=1; i<=n; ++i) {
if(~fin[i]) rs[i].emplace(fin[tek[i]]);
else {
auto &s=rs[i];
for(int j=1; j<=k; ++j) s.emplace(j);
int tmp=0;
for(int j=i+1; j<=n; ++j) {
if(!Rs[j]) s.erase(fin[j]);
}
for(int j=1; j<i; ++j) {
if(Rs[j]) s.erase(fin[j]);
}
}
}
int res=1;
for(int i=1; i<=n; ++i) res*=len(rs[i]),res%=MOD;
cout<<res<<"\n";
return 0;
}

「ARC 124B」XOR Matching 2

Link.

预处理出 \(s(i,j)=a_{i}\oplus b_{j}\),以及 \(pos(i,x)\) 表示第 \(i\) 层值 \(x\) 的出现集合,用 std::map 均摊 \(\mathcal{O}(n^{2})\) 空间。然后我们在第一层逐列考虑,对于第一层的每一种异或值,找出在每一行出现的位置集合,如果某一行没有出现就不行。最后就看集合大小是否等于 \(n\)。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define all(x) (x).begin(),(x).end()
#define int ll
const int N=2100;
int a[N],b[N],xr[N][N],n;
multimap<int,int> mp[N];
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
cin>>n;
for(int i=1; i<=n; ++i) cin>>a[i];
for(int i=1; i<=n; ++i) cin>>b[i];
for(int i=1; i<=n; ++i) for(int j=1; j<=n; ++j) xr[i][j]=(a[i] xor b[j]),mp[i].insert({xr[i][j],j});
vector<int> res;
for(int j=1; j<=n; ++j) {
bool ok=0;
set<int> S;
for(int i=1; i<=n; ++i) {
auto rg=mp[i].equal_range(xr[1][j]);
if(mp[i].find(xr[1][j])!=mp[i].end()) {
for(auto it=rg.first; it!=rg.second; ++it) {
S.emplace(it->second);
}
}
else {
ok=1;
break;
}
}
if(ok) continue;
if(S.size()==n) {
res.push_back(xr[1][j]);
}
}
sort(all(res));
res.erase(unique(all(res)),res.end());
cout<<res.size()<<"\n";
for(int x:res) cout<<x<<"\n";
return 0;
}

「ARC 124C」LCM of GCDs

Link.

考场做法复杂度有问题啊,虽然屮过去了。有空来补 official editorial 做法。

// Oops, something went wrong.

「ARC 124D」Yet Another Sorting Problem

Link.

你看 ARC 又考置换群了。震撼围观吴老师精确押题。

套路题,连边 \(i\rightarrow p_{i}\) 后一堆环摆出来。答案是

\[n+m-(\text{the number of cycles in the graph})+\\
2\times\max\{\text{the number of cycles of size of 2 or greater consisting of vertice numbered through }1\text{ to }n,\\
\text{the number of cycles of size of 2 or greater consisting of vertice numbered through }n+1\text{ to }n+m\}
\]
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define all(x) (x).begin(),(x).end()
const int N=200100;
int n,m,p[N],vis[N];
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
cin>>n>>m; int x0=0,x1=0,res=n+m,ls=0;
for(int i=1; i<=n+m; ++i) cin>>p[i];
for(int i=1; i<=n+m; ++i) {
if(vis[i]) continue;
int now=i,len=0,qwq=0,qaq=0;
while(!vis[now]) {
++len;
if(now<=n) qwq=1;
else qaq=1;
vis[now]=1;
now=p[now];
}
if(!qaq&&len>=2) ++x0;
if(!qwq&&len>=2) ++x1;
--res;
}
cout<<res+2*max(x0,x1)<<"\n";
return 0;
}

「ARC 124E」Pass to Next

Link.


「ARC 124F」Chance Meeting

Link.


Solution Set -「ARC 124」的更多相关文章

  1. Solution Set -「ARC 107」

    「ARC 107A」Simple Math   Link.   答案为: \[\frac{a(a+1)\cdot b(b+1)\cdot c(c+1)}{8} \] 「ARC 107B」Quadrup ...

  2. 「ARC 139F」Many Xor Optimization Problems【线性做法,踩标】

    「ARC 139F」Many Xor Optimization Problems 对于一个长为 \(n\) 的序列 \(a\),我们记 \(f(a)\) 表示从 \(a\) 中选取若干数,可以得到的最 ...

  3. Solution -「ARC 104E」Random LIS

    \(\mathcal{Description}\)   Link.   给定整数序列 \(\{a_n\}\),对于整数序列 \(\{b_n\}\),\(b_i\) 在 \([1,a_i]\) 中等概率 ...

  4. Diary / Solution Set -「WC 2022」线上冬眠做噩梦

      大概只有比较有意思又不过分超出能力范围的题叭.   可是兔子的"能力范围" \(=\varnothing\) qwq. 「CF 1267G」Game Relics   任意一个 ...

  5. Solution -「ARC 101D」「AT4353」Robots and Exits

    \(\mathcal{Description}\)   Link.   有 \(n\) 个小球,坐标为 \(x_{1..n}\):还有 \(m\) 个洞,坐标为 \(y_{1..m}\),保证上述坐标 ...

  6. Solution -「ARC 110D」Binomial Coefficient is Fun

    \(\mathcal{Description}\)   Link.   给定非负整数序列 \(\{a_n\}\),设 \(\{b_n\}\) 是一个非负整数序列且 \(\sum_{i=1}^nb_i\ ...

  7. Solution -「ARC 124E」Pass to Next

    \(\mathcal{Description}\)   Link.   有 \(n\) 个人站成一个环,初始时第 \(i\) 个人手里有 \(a_i\) 个球.第 \(i\) 个人可以将自己手中任意数 ...

  8. Solution -「ARC 126E」Infinite Operations

    \(\mathcal{Description}\)   Link.   给定序列 \(\{a_n\}\),定义一次操作为: 选择 \(a_i<a_j\),以及一个 \(x\in\mathbb R ...

  9. Solution -「ARC 126F」Affine Sort

    \(\mathcal{Description}\)   Link.   给定 \(\{x_n\}\),令 \[f(k)=\left|\{(a,b,c)\mid a,b\in[0,c),c\in[1,k ...

  10. Solution -「ARC 125F」Tree Degree Subset Sum

    \(\mathcal{Description}\)   Link.   给定含有 \(n\) 个结点的树,求非负整数对 \((x,y)\) 的数量,满足存在 \(\exist S\subseteq V ...

随机推荐

  1. Maven资源大于配置问题

    资源大于配置问题 <!--pom.xml中在build中配置resources,来防止我们资源导出失败的问题--> <build> <resources> < ...

  2. 阿里云 MongoDB 创建库添加用户并授权

    先通过 root 进到 admin 库, 右击test 选择用户管理 测试连接

  3. vue3+ts使用v-for出现unknown问题

    最近在写项目时遇到了一个问题,当我从父组件向子组件传数据并且需要将子组件对传入的数据进行v-for循环渲染时,在此出遇到了一个ts报错 报错为循环出的data类型为unknown 具体代码如下 : 子 ...

  4. 一文了解io包中的discard类型

    1. 引言 io.discard是Go语言标准库提供一个结构体类型,其在丢弃不需要的数据场景下非常好用.本文我们将从io.discard 类型的基本定义出发,讲述其基本使用和实现原理,接着简单描述 i ...

  5. Django-4.2博客开发教程:需求分析并确定数据表(四)

    前三步已经完成了一个初步流程,从创建项目>应用>数据迁移>访问首页.以下是我整理的基本流程,接下来一步一步完成整个项目. 1.我们的需求: 博客的功能主要分为:网站首页.文章分类.文 ...

  6. Linux安装与配置FTP服务

    1.FTP安装与配置 1.1.FTP安装 一般使用yum直接在线安装 # 在线安装FTP yum install -y vsftpd 安装完成后查看ftp状态 # 查看ftp状态 systemctl ...

  7. 可托拉拽的WPF选项卡控件,强大好用!

    推荐一个简单易用的WPF选项卡控件. 项目简介 这是一个基于WPF开发的,可扩展.高度可定制.轻量级的UI组件,支持拖拉拽功能,可以让开发人员快速实现需要选项卡窗口的系统. 特色功能 1.拖拉拽标签: ...

  8. python 镜像

    https://pypi.douban.com/simple/   豆瓣源 pip install -i https://pypi.douban.com/simple/ pymysql # pymys ...

  9. 部署安装zookeeper集群

    版本:3.7.0 节点IP: 172.50.13.103 172.50.13.104 172.50.13.105 获取安装包: wget http://mirrors.ustc.edu.cn/apac ...

  10. Oracle表的导出、导入

    有些情况下,需要单独导出某些表,用或者分析数据. 下面记录Oracle表的导出导入方法 1. 表的导出 ./exp $username/$passwd@$ORACLE_SID file=/$file_ ...