Codeforces Round #563 (Div. 2) E. Ehab and the Expected GCD Problem
https://codeforces.com/contest/1174/problem/E
dp
好题
*(if 满足条件)
满足条件 *1
不满足条件 *0
///这代码虽然写着方便,但是常数有点大
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <iostream>
using namespace std;
#define ll long long const double eps=1e-;
const ll inf=1e9;
const ll mod=1e9+;
const int maxn=1e6+; /*
dp题
检查:
1.认真检查公式
2.认真检查代码
3.造一个规模适中的数据
手动推导
对应程序的结果
判断是否相同
*/ ///+1 20->21 2->3
///0->-1 前面加一个辅助数组,这个数组里的所有元素数值为0
///x1*y1+x2*y2+x3*y3+...x20*y20 有可能会超long long, 所以所有乘法运算后面都加%mod
///1e18*k k<=9
int f[maxn][21][3],v[21][3]; int main()
{
int n,two,three,i,j,k;
scanf("%d",&n);
two=log(n+eps)/log();///+eps
three=(1.0*n/(<<two)>=1.5);
for (i=;i<=two;i++)
for (j=;j<=three;j++)
v[i][j]=n/((<<i)*(j==?:)); f[][two][]=;
if (three==)
f[][two-][]=;
for (i=;i<=n;i++)
for (j=;j<=two;j++)
for (k=;k<=three;k++)
///乘1ll,最后强制转换long long 转 int
f[i][j][k]=( 1ll*f[i-][j][k]*(v[j][k]-(i-))*((v[j][k]-(i-))>=)%mod + 1ll*f[i-][j+][k]*(v[j][k]-v[j+][k])*(j!=two)%mod + 1ll*f[i-][j][k+]*(v[j][k]-v[j][k+])*(k!=three)%mod )%mod;
printf("%d",f[n][][]);
return ;
}
推荐比如说这个xiongdi的代码
https://codeforces.com/contest/1174/submission/56391704
超内存的代码
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <iostream>
using namespace std;
#define ll long long const double eps=1e-;
const ll inf=1e9;
const ll mod=1e9+;
const int maxn=1e6+; /*
dp题
检查:
1.认真检查公式
2.认真检查代码
3.造一个规模适中的数据
手动推导
对应程序的结果
判断是否相同
*/ ///+1 20->21 2->3
///0->-1 前面加一个辅助数组,这个数组里的所有元素数值为0
///x1*y1+x2*y2+x3*y3+...x20*y20 有可能会超long long, 所以所有乘法运算后面都加%mod
///1e18*k k<=9
ll f[maxn][21][3],v[21][3]; int main()
{
int n,two,three,i,j,k;
scanf("%d",&n);
two=log(n+eps)/log();///+eps
three=(1.0*n/(<<two)>=1.5);
for (i=;i<=two;i++)
for (j=;j<=three;j++)
v[i][j]=n/((<<i)*(j==?:)); f[][two][]=;
if (three==)
f[][two-][]=;
for (i=;i<=n;i++)
for (j=;j<=two;j++)
for (k=;k<=three;k++)
f[i][j][k]=( f[i-][j][k]*(v[j][k]-(i-))*((v[j][k]-(i-))>=)%mod + f[i-][j+][k]*(v[j][k]-v[j+][k])*(j!=two)%mod + f[i-][j][k+]*(v[j][k]-v[j][k+])*(k!=three)%mod )%mod; printf("%lld",f[n][][]);
return ;
}
Codeforces Round #563 (Div. 2) E. Ehab and the Expected GCD Problem的更多相关文章
- Codeforces Round #563 (Div. 2) C. Ehab and a Special Coloring Problem
链接:https://codeforces.com/contest/1174/problem/C 题意: You're given an integer nn. For every integer i ...
- Codeforces Round #525 (Div. 2)E. Ehab and a component choosing problem
E. Ehab and a component choosing problem 题目链接:https://codeforces.com/contest/1088/problem/E 题意: 给出一个 ...
- Codeforces Round #525 (Div. 2)D. Ehab and another another xor problem
D. Ehab and another another xor problem 题目链接:https://codeforces.com/contest/1088/problem/D Descripti ...
- Codeforces Round #563 (Div. 2) B. Ehab Is an Odd Person
链接:https://codeforces.com/contest/1174/problem/B 题意: You're given an array aa of length nn. You can ...
- Codeforces Round #563 (Div. 2) A. Ehab Fails to Be Thanos
链接:https://codeforces.com/contest/1174/problem/A 题意: You're given an array aa of length 2n2n. Is it ...
- Codeforces Round #563 (Div. 2) F. Ehab and the Big Finale
后续: 点分治标程 使用father数组 比使用vis数组优秀(不需要对vis初始化) https://codeforces.com/problemset/problem/1174/F https:/ ...
- Codeforces Round #525 (Div. 2) D. Ehab and another another xor problem(待完成)
参考资料: [1]:https://blog.csdn.net/weixin_43790474/article/details/84815383 [2]:http://www.cnblogs.com/ ...
- Codeforces Round #525 (Div. 2) E. Ehab and a component choosing problem 数学
题意:给出树 求最大的sigma(a)/k k是选取的联通快个数 联通快不相交 思路: 这题和1个序列求最大的连续a 的平均值 这里先要满足最大平均值 而首先要满足最大 也就是一个数的时候可 ...
- Codeforces Round #525 (Div. 2) D. Ehab and another another xor problem(交互题 异或)
题目 题意: 0≤a,b<2^30, 最多猜62次. 交互题,题目设定好a,b的值,要你去猜.要你通过输入 c d : 如果 a^c < b^d ,会反馈 -1 : 如果 a^c = b^ ...
随机推荐
- 搜索solr
这是我第一次写博客,没有系统性.专业性,东西很杂,也不知道自己在写些什么. SOA分布式架构,所以,使用solr,搜索层的服务层需要搭建起来.搜索系统的表现层搭建 ,打包方式是war包 域名改变代表系 ...
- 关于KiCAD
关于KiCAD 使用背景 一直以来公司都在用AD作为EDA软件,但是最近公司频繁收到律师函,所以决定找一款开源的软件来代替AD,目前市场上开源的只找到了KiCAD和Easy EDA(中文版立创EDA) ...
- vue 学习六 在组件上使用v-model
其实这个部分应该是属于component,为什么把这玩意单独拿出来呢,原因是它这个东西比较涉及到了vue的事件,以及v-model指令的使用,还是比较综合的.所以就拿出来啦 父组件 <templ ...
- pip install RISE报错解决
ERROR: Cannot uninstall 'tornado' ERROR: Cannot uninstall 'tornado'. It is a distutils installed pro ...
- 小程序之rpx适配方案
官网文档: 我的理解: rpx是自适应单位 计算方式: 1rpx = 设备屏幕宽度 / 750 注意:750是官网规定 为什么选择iPhone6为标准,作为开发模拟? 因为在iPhone6中,1px ...
- Hello cnblog!
博主是从csdn搬过来的,原博客地址: https://blog.csdn.net/Cold_Chair 里面有一些不错的游记和知识点讲解,由于不方便搬过来,所以有兴趣的同学可以去看看(* ̄︶ ̄)
- AcWing 161. 电话列表 (trie)打卡
给出一个电话列表,如果列表中存在其中一个号码是另一个号码的前缀这一情况,那么就称这个电话列表是不兼容的. 假设电话列表如下: ·Emergency 911·Alice 97 625 999·Bob 9 ...
- java.io.IOException: Could not find resource SqlMapConfig.xml
java.io.IOException: Could not find resource SqlMapConfig.xml 创建mybatis工程时遇到的问题 问题的来源:当我们在项目中和src同级的 ...
- 网络数据包最大长度 MTU 分片 转发https://blog.csdn.net/singular2611/article/details/52513406
1.数据链路层对数据帧的长度都有一个限制,也就是链路层所能承受的最大数据长度,这个值称为最大传输单元,即MTU.以以太网为例,这个值通常是1500字节. 2.对于IP数据包来讲,也有一个长度,在IP包 ...
- 51nod1787最大子方阵
51nod1787最大子方阵 我在51nod上面切的第一道题 我在51nod上面切的第一道8级题 我在51nod上面切的第一道8级题的一血 题目大意 有一个n*m的矩阵,矩阵中的每一个元素是'X'或者 ...