Codeforces Round #554 (Div. 2) 选做
2024-10-08 14:42:31
C. Neko does Maths
题意
给 \(a,b\) ,求一个最小的 \(k\) 使得 \(\text{lcm}(a+k,b+k)\) 最小。
\(a,b\le 10^9\)
题解
\(\gcd (a+k,b+k) = \gcd(b-a,a+k)\) 。
只需枚举 \(b-a\) 的因数作为 \(\gcd\) ,容易算出最小的 \(k\) ,然后更新答案即可。
code
#include<cstdio>
long long mn=1ll<<60;
int a,b,k;
inline int gcd(int x, int y) {
return y?gcd(y,x%y):x;
}
void solve(int x)
{
int y=((a-1)/x+1)*x-a;
long long tmp=1ll*(a+y)*(b+y)/gcd(a+y,b+y);
if(tmp<mn) mn=tmp,k=y;
}
int main()
{
scanf("%d%d",&a,&b);
if(a>b) a^=b^=a^=b;
const int c=b-a;
for(int i=1;i*i<=c;++i)
if(c%i==0)
{
solve(i);
if(i*i!=c) solve(c/i);
}
printf("%d",k);
}
D. Neko and Aki's Prank
题意
给 \(n\) ,将长度为 \(2n\) 的合法括号序列放到 \(\text{trie}\) 里,求 \(\text{trie}\) 树的最大匹配,对 \(10^9+7\) 取模。
\(n\le 1000\)
题解
可以考虑直接 dp 最大匹配,但这样会涉及取 \(\max\) 操作,显然是不行的。
我们考虑贪心匹配,每次把第 \(2n-1\) 层的点全部向第 \(2n\) 点匹配,然后第 \(2n-3\) 层的点全部向第 \(2n-2\) 层的点匹配。以此类推。这样答案就为深度为奇数的点的个数。
设 \(f[i][j]\) 为深度为 \(i\) ,有 \(j\) 个左括号的点的个数。注意右括号个数始终不能超过左括号个数,左括号个数不能 \(>n\) 。转移显然。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=2005,Mod=1e9+7;
int f[N][N];
int main()
{
int n,ans=0;
scanf("%d",&n),n<<=1;
f[0][0]=1;
for(int i=1;i<=n;++i)
for(int j=0;j<=i;++j) // ( : j
{
if(j>n/2) continue;
int k=i-j; // ) : k
if(j>=1&&j-1>=k) f[i][j]=(f[i][j]+f[i-1][j-1])%Mod;
if(k>=1&&j>k-1) f[i][j]=(f[i][j]+f[i-1][j])%Mod;
ans=(ans+(i%2==1)*f[i][j])%Mod;
}
printf("%d",ans);
}
最新文章
- jQuery源码解读 - 数据缓存系统:jQuery.data
- js库写法
- 16位的MD5加密和32位MD5加密的区别
- FlushMode属性与transaction(spring注入的事务)
- SIAlertView
- Mongodb FAQ 存储(storage)篇
- Oracle 修改密码 解锁
- 微信oauth获取用户的信息页面授权
- 错误提示 Unsupported compiler &#39;com.apple.compilers.llvmgcc42&#39; selected for architecture &#39;i386&#39;
- vs生成解决方案错误无法将文件“xx.*”复制到xx.*”。对路径“bin\xx.*”的访问被拒绝
- placeholder的字体样式改变,滚动条的颜色改变,ios日期兼容
- 从网络获取json数据,使用imageloader获取网络图片资源并显示在ListView上
- log4j 日志脱敏处理 + java properties文件加载
- Android实时直播,一千行java搞定不依赖jni,延迟0.8至3秒,强悍移动端来袭
- JAR、WAR、EAR的使用和区别
- .NET跨平台开发之Xamarin.Android介绍与生命周期【2】
- 第二个web网页
- MySQL InnoDB特性:两次写(Double Write)
- mo系统常用语句
- Java使用 SFTP实现文件上传下载
热门文章
- input、raw_input区别,运算符,运算优先级,多变赋值方式
- 区分 for...in 和 for...of
- 解决苹果手机(IOS)input失焦后,页面不恢复的问题
- 敏捷团队协作:Confluence简易教程
- SICP题解
- dp - 活动选择问题
- error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 解决方法
- A way to find out how activity for mssql and oracle
- 使用C语言实现文件的操作
- 第1节 storm编程:3、storm的架构模型的介绍