「CF 1485A」Add and Divide

Link.

贪心。枚举 \([b,b+\log_{2}\text{range}]\) 然后取个 \(\min\)。

#include<cstdio>
#include<algorithm>
using namespace std;
int t,a,b,ans;
int search(int bas)
{
if(bas>1)
{
int tmp=a,res=0;
while(tmp>0)
{
tmp/=bas;
res++;
}
return res;
}
else return 1e9;
}
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d %d",&a,&b);
if(a==b) printf("%d\n",2);
else if(a<b) printf("%d\n",1);
else
{
ans=1e9;
for(int i=b;i<=b+233;++i) ans=min(ans,search(i)+i-b);
printf("%d\n",ans);
}
}
return 0;
}

「CF 1485B」Replace and Keep Sorted

Link.

每个元素都可以上下摇摆于是预处理前缀差分和和后缀差分和(因为是 strictly increasing 所以要减 \(1\))即可。

#include<cstdio>
int n,m,k,a[100010],fro[100010],rea[100010];
void pre()
{
for(int i=1;i<=n;++i) fro[i]=a[i]-a[i-1]-1;
for(int i=n;i>=1;--i) rea[i]=a[i+1]-a[i]-1;
for(int i=1;i<=n;++i) fro[i]+=fro[i-1];
for(int i=n;i>=1;--i) rea[i]+=rea[i+1];
}
int main()
{
scanf("%d %d %d",&n,&m,&k);
for(int i=1;i<=n;++i) scanf("%d",&a[i]);
pre();
while(m--)
{
int l,r;
scanf("%d %d",&l,&r);
printf("%d\n",k-a[r]+a[l]-1+fro[r]-fro[l]+rea[l]-rea[r]);
}
return 0;
}

「CF 1485C」Floor and Mod

Link.

\[a\bmod b=\lfloor\frac{a}{b}\rfloor=k \\
\rightarrow a=kb+k\rightarrow a=(b+1)k\rightarrow k=\frac{a}{b+1} \\
k<b\rightarrow k^{2}<k(b+1)=a\le x\rightarrow 1\le k\le\sqrt{x} \\
1\le a\le x\rightarrow 1\le(b+1)k\le x\rightarrow1\le b\le\frac{x}{k}-1 \\
\rightarrow\text{ans}=\sum_{k=1}^{\sqrt{x}}\max(0,\min(y,\frac{x}{k}-1)-k)
\]
#include<cstdio>
#include<algorithm>
using namespace std;
const long long zero=0ll;
long long t,x,y,ans;
int main()
{
scanf("%lld",&t);
while(t--)
{
scanf("%lld %lld",&x,&y);
ans=0;
for(long long i=1;i*i<=x;++i) ans+=max(zero,min(y,x/i-1)-i);
printf("%lld\n",ans);
}
return 0;
}

「CF 1485D」Multiples and Power Differences

Link.

  • \((i+j)\bmod 2=1\):\(b_{i,j}=\text{lcm}(1,\cdots,16)\)。
  • \((i+j)\bmod 2=0\):\(b_{i,j}=\text{lcm}(1,\cdots,16)+a_{i,j}^{4}\)。
#include<cstdio>
int n,m,x;
int main()
{
scanf("%d %d",&n,&m);
for(int i=1;i<=n;++i)
{
for(int j=1;j<=m;++j)
{
scanf("%d",&x);
if((i+j)&1) printf("%d ",720720);
else printf("%d ",720720+x*x*x*x);
}
printf("\n");
}
return 0;
}

「CF 1485E」Move and Swap

Link.

blue 因为就是一直往下跑,所以一次操作在哪里不影响。

于是设 \(f_{u}\) 为操作完毕后 red 跑到 \(u\) 的 maximum value。

  • \(v\in\text{son}(u)\) 为 red:此时没发生 swapping,\(f_{u}=f_{v}+|a_{u}-a_{v}|\)。
  • \(v\in\text{son}(u)\) 为 blue:此时发生了 swapping,那么枚举 \(v\) 的同层结点 \(anov\),\(f_{u}=f_{anov}+|a_{u}-a_{anov}|\)。
#include<queue>
#include<cstdio>
#include<algorithm>
using namespace std;
const long long INF=1e18;
vector<int> e[200010],same[200010];
int t,n,dep[200010],fa[200010],leaf;
long long a[200010],f[200010];
void dfs(int x,int las)
{
dep[x]=dep[las]+1;
fa[x]=las;
leaf=max(leaf,dep[x]);
for(int i=0;i<e[x].size();++i)
{
int y=e[x][i];
if(y^las) dfs(y,x);
}
}
void DP(int d)
{
for(int i=d;i>1;--i)
{
long long mn=INF,mx=-INF,one=-INF,ano=-INF;
for(int j=0;j<same[i].size();++j)
{
mn=min(mn,a[same[i][j]]);
mx=max(mx,a[same[i][j]]);
}
for(int j=0;j<same[i].size();++j) f[fa[same[i][j]]]=max(f[fa[same[i][j]]],max(a[same[i][j]]-mn,mx-a[same[i][j]])+f[same[i][j]]);
for(int j=0;j<same[i].size();++j)
{
one=max(one,f[same[i][j]]+a[same[i][j]]);
ano=max(ano,f[same[i][j]]-a[same[i][j]]);
}
for(int j=0;j<same[i].size();++j) f[fa[same[i][j]]]=max(f[fa[same[i][j]]],max(one-a[same[i][j]],ano+a[same[i][j]]));
}
}
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=2;i<=n;++i)
{
int x;
scanf("%d",&x);
e[x].push_back(i);
e[i].push_back(x);
}
for(int i=2;i<=n;++i) scanf("%d",&a[i]);
dfs(1,0);
for(int i=1;i<=n;++i) same[dep[i]].push_back(i);
DP(leaf);
printf("%lld\n",f[1]);
for(int i=1;i<=n;++i)
{
f[i]=dep[i]=fa[i]=0;
same[i].clear();
e[i].clear();
}
leaf=0;
}
return 0;
}

「CF 1485F」Copy or Prefix Sum

Link.

Solution Set -「CF 1485」的更多相关文章

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

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

  2. 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 ...

  3. Solution -「CF 1342E」Placing Rooks

    \(\mathcal{Description}\)   Link.   在一个 \(n\times n\) 的国际象棋棋盘上摆 \(n\) 个车,求满足: 所有格子都可以被攻击到. 恰好存在 \(k\ ...

  4. Solution -「CF 1622F」Quadratic Set

    \(\mathscr{Description}\)   Link.   求 \(S\subseteq\{1,2,\dots,n\}\),使得 \(\prod_{i\in S}i\) 是完全平方数,并最 ...

  5. Solution -「CF 923F」Public Service

    \(\mathscr{Description}\)   Link.   给定两棵含 \(n\) 个结点的树 \(T_1=(V_1,E_1),T_2=(V_2,E_2)\),求一个双射 \(\varph ...

  6. Solution -「CF 923E」Perpetual Subtraction

    \(\mathcal{Description}\)   Link.   有一个整数 \(x\in[0,n]\),初始时以 \(p_i\) 的概率取值 \(i\).进行 \(m\) 轮变换,每次均匀随机 ...

  7. Solution -「CF 1586F」Defender of Childhood Dreams

    \(\mathcal{Description}\)   Link.   定义有向图 \(G=(V,E)\),\(|V|=n\),\(\lang u,v\rang \in E \Leftrightarr ...

  8. Solution -「CF 1237E」Balanced Binary Search Trees

    \(\mathcal{Description}\)   Link.   定义棵点权为 \(1\sim n\) 的二叉搜索树 \(T\) 是 好树,当且仅当: 除去最深的所有叶子后,\(T\) 是满的: ...

  9. Solution -「CF 623E」Transforming Sequence

    题目 题意简述   link.   有一个 \(n\) 个元素的集合,你需要进行 \(m\) 次操作.每次操作选择集合的一个非空子集,要求该集合不是已选集合的并的子集.求操作的方案数,对 \(10^9 ...

  10. Solution -「CF 1023F」Mobile Phone Network

    \(\mathcal{Description}\)   Link.   有一个 \(n\) 个结点的图,并给定 \(m_1\) 条无向带权黑边,\(m_2\) 条无向无权白边.你需要为每条白边指定边权 ...

随机推荐

  1. 什么是Sparse by default for crates.io

    当 Rust crate 发布到 crates.io 上时,可以启用"Sparse by default"特性,这意味着默认情况下,crate 不会包含所有依赖项在上传到 crat ...

  2. Java 网络编程 —— RMI 框架

    概述 RMI 是 Java 提供的一个完善的简单易用的远程方法调用框架,采用客户/服务器通信方式,在服务器上部署了提供各种服务的远程对象,客户端请求访问服务器上远程对象的方法,它要求客户端与服务器端都 ...

  3. Linux系统基础知识与自学方法

    Linux系统基础知识与自学方法 大部分非计算机相关的朋友也经常使用电脑,所以我们频繁接触的是Windows系统.关于这个系统的评价不一,一部分人觉得简洁快捷,一部分人觉得问题(病毒.弹窗)多多,总之 ...

  4. 用AI技术实现自动化的社交媒体广告投放,提高广告效果和收益

    目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 随着社交媒体的普及,广告投放已经成为了广告行业的重要一环.在过去的几年中,社交媒体广告投放的效果和收益都得到了显著提高,但同时也存在着一些 ...

  5. 怎么让英文大预言模型支持中文?(一)构建自己的tokenization

    代码地址:https://github.com/taishan1994/sentencepiece_chinese_bpe Part1前言 目前,大语言模型呈爆发式的增长,其中,基于llama家族的模 ...

  6. Profinet转EtherNet/IP网关连接AB PLC的应用案例

    西门子S7-1500 PLC(profinet)与AB PLC以太网通讯(EtherNet/IP).本文主要介绍捷米特JM-EIP-PN的Profinet转EtherNet/IP网关,连接西门子S7- ...

  7. Hexo博客Next主题配置加载优化性能提升

    主题源加载优化 把在NexT主题的_config.yml里面的: # Uri of fonts host. E.g. //fonts.googleapis.com (Default) host: 改为 ...

  8. [Spring+SpringMVC+Mybatis]框架学习笔记(二):Spring-IOC-DI

    上一章:[Spring+SpringMVC+Mybatis]框架学习笔记(一):SpringIOC概述 下一章:[Spring+SpringMVC+Mybatis]框架学习笔记(三):Spring实现 ...

  9. 用windows脚本命令netsh快速启用、禁用网络

    用windows脚本命令netsh快速启用.禁用网络 不知道你有没有这种需求:公司单位里的网络是内网,有时需要连接手机热点wifi网络,这时就需要先禁用内网网卡,启用无线网卡.连接内网的时候又需要先禁 ...

  10. Vortex Indicator 构建交易策略

    更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 今天的文章,我们将为大家介绍一个与DMI(Directional Movement Index)类似,判 ...