Solution Set -「ABC 183」
本来十分抗拒,但 GM 强制。
「ABC 183A」ReLU
Link.
略。
#include<cstdio>
int main()
{
long long n;
scanf("%lld",&n);
printf("%lld\n",n>0?n:0);
return 0;
}
「ABC 183B」Billiards
Link.
设答案坐标 \(A(m,n)\),然后算出 \(y_{AG}\) 解析式,再带 \(x=S'_{x}\),\(S'\) 是 \(S\) 关于直线 \(x=m\) 的对称点,得出来的 \(y\) 要等于 \(n\),然后列个方程解出来答案为 \(\frac{S_{x}G_{y}+G_{x}S_{y}}{S_{y}+G_{y}}\)。
#include<cstdio>
double sx,sy,gx,gy;
int main()
{
scanf("%lf%lf%lf%lf",&sx,&sy,&gx,&gy);
printf("%lf\n",(sx*gy+gx*sy)/(sy+gy));
return 0;
}
「ABC 183C」Travel
Link.
全排列枚举算答案即可。
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> per;
int n,ans;
long long k,tim[20][20];
int main()
{
scanf("%d%lld",&n,&k);
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j) scanf("%lld",&tim[i][j]);
}
per.resize(n+2);
for(int i=1;i<=n;++i) per[i]=i;
per[n+1]=1;
do
{
long long sum=0;
for(int i=2;i<=n+1;++i) sum+=tim[per[i-1]][per[i]];
if(sum==k) ++ans;
}while(next_permutation(per.begin()+2,per.end()-1));
printf("%d\n",ans);
return 0;
}
「ABC 183D」Water Heater
Link.
前缀和。
#include<cstdio>
int n,s[200010],t[200010],p[200010],w;
long long dif[200010];
int main()
{
scanf("%d%d",&n,&w);
for(int i=1;i<=n;++i) scanf("%d%d%d",&s[i],&t[i],&p[i]);
for(int i=1;i<=n;++i)
{
dif[s[i]]+=p[i];
dif[t[i]]-=p[i];
}
for(int i=1;i<=200000;++i) dif[i]+=dif[i-1];
for(int i=0;i<=200000;++i)
{
if(dif[i]>w)
{
printf("No\n");
return 0;
}
}
printf("Yes\n");
return 0;
}
「ABC 183E」Water Heater
Link.
递推完了。
#include<cstdio>
const int mod=1e9+7;
long long ans;
int n,m,mp[2010][2010],row[2010],col[2010],dia[5010];
char str[2010];
int add(long long a,long long b)
{
if(a+b>=mod) return (a+b)%mod;
else return a+b;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i)
{
scanf("%s",str+1);
for(int j=1;j<=m;++j)
{
if(str[j]=='.') mp[i][j]=0;
else mp[i][j]=1;
}
}
int lay=2e3;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=m;++j)
{
if(mp[i][j])
{
row[i]=0;
col[j]=0;
dia[i-j+lay]=0;
}
else
{
int tmp=add(add(row[i],col[j]),dia[i-j+lay]);
if(i==1&&j==1) ++tmp;
row[i]=add(row[i],tmp);
col[j]=add(col[j],tmp);
dia[i-j+lay]=add(dia[i-j+lay],tmp);
ans=tmp;
}
}
}
printf("%d\n",ans);
return 0;
}
「ABC 183F」Confluence
Link.
并查集板。
#pragma GCC diagnostic error "-std=c++11"
#include<map>
#include<cstdio>
using namespace std;
map<int,int> mp[200010];
int n,m,fa[200010];
void makeset()
{
for(int i=1;i<=n;++i) fa[i]=i;
}
int findset(int x)
{
if(x^fa[x]) fa[x]=findset(fa[x]);
return fa[x];
}
void mergeset(int x,int y)
{
x=findset(x);
y=findset(y);
if(x^y)
{
if(mp[x].size()>mp[y].size())
{
fa[y]=x;
for(auto p:mp[y]) mp[x][p.first]+=p.second;
}
else
{
fa[x]=y;
for(auto p:mp[x]) mp[y][p.first]+=p.second;
}
}
}
int main()
{
scanf("%d%d",&n,&m);
makeset();
for(int i=1;i<=n;++i)
{
int x;
scanf("%d",&x);
mp[i][x]++;
}
while(m--)
{
int opt,opx,opy;
scanf("%d%d%d",&opt,&opx,&opy);
if(opt==1) mergeset(opx,opy);
else
{
int tmp=findset(opx);
printf("%d\n",mp[tmp][opy]);
}
}
return 0;
}
Solution Set -「ABC 183」的更多相关文章
- Solution Set -「ABC 217」
大家好屑兔子又来啦! [A - Lexicographic Order] 说个笑话,\(\color{black}{\text{W}}\color{red}{\text{alkingDead} ...
- Diary / Solution Set -「WC 2022」线上冬眠做噩梦
大概只有比较有意思又不过分超出能力范围的题叭. 可是兔子的"能力范围" \(=\varnothing\) qwq. 「CF 1267G」Game Relics 任意一个 ...
- 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 ...
- Solution -「ABC 219H」Candles
\(\mathcal{Description}\) Link. 有 \(n\) 支蜡烛,第 \(i\) 支的坐标为 \(x_i\),初始长度为 \(a_i\),每单位时间燃烧变短 \(1\) ...
- Solution -「ABC 215H」Cabbage Master
\(\mathcal{Description}\) Link. 有 \(n\) 种颜色的,第 \(i\) 种有 \(a_i\) 个,任意两球互不相同.还有 \(m\) 个盒子,每个盒子可以被放 ...
- Solution -「ABC 213G」Connectivity 2
\(\mathcal{Description}\) Link. 给定简单无向图 \(G=(V,E)\),点的编号从 \(1\) 到 \(|V|=n\).对于 \(k=2..n\),求 \(H= ...
- Solution -「ABC 213H」Stroll
\(\mathcal{Description}\) Link. 给定一个含 \(n\) 个结点 \(m\) 条边的简单无向图,每条边的边权是一个常数项为 \(0\) 的 \(T\) 次多项式, ...
- Solution -「ABC 217」题解
D - Cutting Woods 记录每一个切割点,每次求前驱后驱就好了,注意简单判断一下开闭区间. 考场上采用的 FHQ_Treap 无脑莽. #include <cstdio> #i ...
- 「ABC 249Ex」Dye Color
考虑停时定理. 初始势能为 \(\sum \Phi(cnt_i)\),末势能为 \(\Phi(n)\),我们希望构造这样一个 \(\Phi:Z\to Z\) 函数,使得每一次操作期望势能变化量为常数. ...
- Note -「Lagrange 插值」学习笔记
目录 问题引入 思考 Lagrange 插值法 插值过程 代码实现 实际应用 「洛谷 P4781」「模板」拉格朗日插值 「洛谷 P4463」calc 题意简述 数据规模 Solution Step 1 ...
随机推荐
- CentOS 8 已是绝版?还有后续么?
文章由 Linux爱好者( ID: LinuxHub)整理自开源中国 + 红帽官方.本文章经原作者同意后授权转载. 2020年12月8日,CentOS 项目宣布,CentOS 8 将于 2021 年底 ...
- JavaWeb编程面试题——Spring Web MVC
引言 面试题==知识点,这里所记录的面试题并不针对于面试者,而是将这些面试题作为技能知识点来看待.不以刷题进大厂为目的,而是以学习为目的.这里的知识点会持续更新,目录也会随时进行调整. 关注公众号:编 ...
- 效率神器,边看网页边问ChatGPT!神级ChatGPT插件(浏览器扩展)推荐!
如果在看一个网页时,有些词不认识.句子不知道含义,怎么办? 憨憨版:不认识就算了呗,还能咋滴 进阶版:复制到 Google/Baidu 里问一问: AI达人版:复制到 ChatGPT/Claude 里 ...
- js实现图片切换效果
用js实现点击按钮,图片切换的效果: 1 <div class="box" id="box"> 2 <div class="img_ ...
- 看懂java序列化,这篇就够了
前言 相信大家日常开发中,经常看到 Java 对象 "implements Serializable".那么,它到底有什么用呢?本文带你全方位的解读序列化与反序列化这一块知识点. ...
- WakaTime Readme Stats-开源项目翻译
寻找不同语言和地区的翻译 #23 Readme中添加了功能标志的开发指标 眼前一亮的Readme统计数据 你是早起的还是夜间的? 你一天中什么时候工作效率最高? 你用什么语言编写代码? 让我们在你的个 ...
- Python 逻辑表达式的妙用
今天偶然看到有这样一段代码,感到很惊讶: super().__init__(package_name or (robot_name + "_moveit_config")) 语义非 ...
- Redis缓存同步1-策略介绍
缓存数据同步策略示意图 在大多数情况下,我们通过浏览器查询到的数据都是缓存数据,如果缓存数据与数据库的数据存在较大差异的话,可能会产生比较严重的后果的.所以,我们应该也必须保证数据库数据.缓存数据的一 ...
- [ESP] 使用Ayla API Reference配网和连Ayla云
示例用的文档及链接 US Dev Dashboard(查看oem-id和oem-key) https://dashboard-dev.aylanetworks.com/ Ayla API Refere ...
- CentOS 8搭建Docker镜像私有仓库-registry
目录 简介 安装Docker 添加docker yum源 安装docker 确保网络模块开机自动加载 使桥接流量对iptables可见 配置docker 验证docker是否正常 添加用户到docke ...