ABC326
我又来提供 low 算法了。
从 D 开始。
我们把 \(\text{A}\) 看成 \(1\),把 \(\text{B}\) 看成 \(2\),把 \(\text{C}\) 看成 \(3\)。
那么就可以想到状压,然后把每一行和每一列的情况状态即可。
#include<bits/stdc++.h>
using namespace std;
const int maxn = 6;
int row[maxn],col[maxn];
string ans[maxn];
int n;
string r,c;
int tot = 0;
void dfs(int x,int y)
{
if(x == n)
{
if(tot == 3 * n)
{
cout << "Yes\n";
for(int i = 0;i < n;i++)
{
for(int j = 0;j < n;j++)
{
cout << ans[i][j];
}
cout << '\n';
}
exit(0);//杀死程序
}
return ;
}
if(y == n)
{
dfs(x + 1,0);
return ;
}
dfs(x,y + 1);//填.
for(int i = 0;i < 3;i++)
{
if(row[x] == 0 && i + 'A' != r[x])
{
continue;
}
if(col[y] == 0 && i + 'A' != c[y])
{
continue;
}//这样可以保证题目所说的2,3条件
if(row[x] >> i & 1)
{
continue;
}
if(col[y] >> i & 1)
{
continue;
}//不可以填的情况
ans[x][y] = 'A' + i;
row[x] ^= 1 << i;
col[y] ^= 1 << i;
tot += 1;
dfs(x,y + 1);
ans[x][y] = '.';
row[x] ^= 1 << i;
col[y] ^= 1 << i;
tot -= 1;//回溯
}
}
int main()
{
cin >> n >> r >> c;
for(int i = 0;i < n;i++)
{
for(int j = 0;j < n;j++)
{
ans[i][j] = '.';
}
}
dfs(0,0);
cout << "No";
return 0;
}
\(\text{tot}\) 指的是总共有多少个数。
不难。
其实就是每一个数取到的概率乘上每一个数的值即可。
设取到 \(a_i\) 的概率为 \(p_i\),则有 \(p_i = \dfrac{1}{n} \sum^{i-1}_{j=0} p_j\)。
为什么呢?
因为 \(\dfrac{1}{n} p_j\) 表示 \(x=j\) 时骰子显示 \(i\) 的概率。
所以就可以在 \(O(n)\) 的时间内求出来。
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod = 998244353;
int qpow(int a,int b)
{
int res = 1;
while(b)
{
if(b & 1)
{
res = res * a % mod;
}
a = a * a % mod;
b >>= 1;
}
return res;
}
int n;
signed main()
{
cin >> n;
int ans = 0,p = qpow(n,mod - 2);
for(int i = 1;i <= n;i++)
{
int a;
cin >> a;
ans = (p * a % mod + ans) % mod;
p = (p + p * qpow(n,mod - 2) % mod) % mod;
}
cout << ans << '\n';
return 0;
}
随机推荐
- 了解3D世界的黑魔法-纯Java构造一个简单的3D渲染引擎
简介: 对于非渲染引擎相关工作的开发者来说,可能认为即使构建最简单的3D程序也非常困难,但事实上并非如此,本篇文章将通过简单的200多行的纯 Java代码,去实践正交投影.简单三角形光栅化.z缓冲(深 ...
- 数字农业WMS库存操作重构及思考
简介: 数字农业库存管理系统在2020年时,部门对产地仓生鲜水果生产加工数字化的背景下应运而生.项目一期的数农WMS中的各类库存操作均为单独编写.而伴随着后续的不断迭代,这些库存操作间慢慢积累了大量 ...
- 阿里云IoT Studio升级版新增解决方案引擎 大幅提升方案交付效率
简介: 8月25日,阿里云发布IoT Studio升级版,新增了解决方案引擎,让设备方案商复用之前搭建的解决方案模板进行简单的定制化修改,即可交付.使整个物联网解决方案的交付过程由几个月,缩短到几小时 ...
- 表格存储 SQL 查询多元索引
简介: 多元索引是表格存储产品中一个重要的功能,多元索引使用倒排索引技术为表格存储提供了非主键列上的快速检索功能,另外也提供了统计聚合功能.表格存储近期开放了SQL查询功能,SQL引擎默认从原始表格 ...
- Docker的基本命令
1.docker使用的优点 1.更快速的交付和部署 对于开发和运维人员来说,最希望的是保持所有环境一致,这样不会导致,开发在自己的环境里程序运行正常而运维跑的服务器环境里就不正常:对于运维来说,可以使 ...
- To Be Vegetable
求满足下述条件的 \(n\) 阶排列 \(a\) 的数目:对每个 \(i\),要么 \(a_i-i\le a_j-j+d\) 对所有 \(j\gt i\) 成立,要么 \(a_i\ge a_j\) 对 ...
- 开启 ssh 服务
开启 ssh 服务 vim /etc/ssh/sshd_config 重启 ssh 服务:/etc/init.d/ssh restart 设置服务自启动:update-rc.d ssh enable
- Docker基础 ubuntu安装docker
目录 如何在Linux深度系统deepin下安装docker 介绍 安装docker 在ubuntu的docker中运行ubuntu 在ubuntu的docker中运行centos 卸载docker ...
- Linux 开启防火墙端口策略
1. 安装防火墙 yum install firewalld systemd -y 2. 手动开放防火墙端口 查看防火墙全部设置 firewall-cmd --list-all 若防火墙服务未启动可执 ...
- 基于Node.js+MySQL开发的开源微信小程序商城(微信小程序)部署环境
在网上搜到小程序设计的项目,下载前辈的代码到本地环境,接下来需要如何部署代码到本地,并能够看到完整的效果展示. 服务器端: https://github.com/tumobi/nideshop Nid ...