bzoj4807 車
题目大意:
Description
Input
Output
Sample Input
Sample Output
Solution
Code
/**************************************************************
Problem: 4807
User: 20011023
Language: C++
Result: Accepted
Time:1332 ms
Memory:17892 kb
****************************************************************/ #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=+;
const ll mod=1e10;
int n,m;
int k;
int exi[N];
int ans;
int yue[N],has[N],cnt;
int pri[N],tot;
bool vis[N];
void sieve(){
for(int i=;i<=n;i++){
if(!vis[i]){
pri[++tot]=i;
}
for(int j=;j<=tot;j++){
if(pri[j]*i>n) break;
vis[pri[j]*i]=;
if(i%pri[j]==) break;
}
}
}
void div1(int x){
for(int i=;pri[i]*pri[i]<=x;i++){
while(x%pri[i]==){
exi[i]++;
x/=pri[i];
}
}
if(x>){
int k=lower_bound(pri+,pri+tot+,x)-pri;
exi[k]++;
}
}
int div2(int x){
int now=x;
for(int i=;pri[i]*pri[i]<=x;i++){
if(now%pri[i]==){
while(now%pri[i]==){
if(exi[i]){
exi[i]--;
x/=pri[i];}
now/=pri[i];
}
}
}
if(now>){
int k=lower_bound(pri+,pri+tot+,now)-pri;
if(exi[k]){
exi[k]--;
x/=pri[k];
}
}
return x;
}
struct big{
ll a[];
int cnt;
void pre(){
cnt=,a[]=;
}
void mul(const ll &x){
int ji=;
for(int i=;i<=cnt;i++){
a[i]=a[i]*x+ji;
ji=a[i]/mod;
a[i]%=mod;
}
if(ji){
a[++cnt]=ji;
}
if(cnt>) cnt=;
}
void op(){
while(a[cnt]==&&cnt>) cnt--;
printf("%lld",a[cnt--]);
while(cnt)printf("%010lld",a[cnt--]);
}
}A;
void wrk(){
A.pre();
for(int i=m+;i<=n;i++){
int re=div2(i);
A.mul(re);
}
}
int main()
{
scanf("%d%d",&n,&m);
if(m>n) swap(n,m);
if(n==m){
printf("");return ;
}
else if(n==){
printf("%d",m);return ;
}
else if(m==){
printf("%d",n);return ;
}
sieve();
for(int i=;i<=n-m;i++){
div1(i);
}
wrk();
A.op();
return ;
}
Conclusion
质因数分解往往可以起到意想不到的优化,因为一个数的分解呈现了它的本质。
决定了一切的乘除,gcd,找因数等运算。
1.乘除,本质上是质因子次数的加减。
2.gcd本质上是所有质因子次数取min再相乘。lcm则取max
3.因数的产生本质上是一个乘法原理。质因子次数的选择也决定了因数的数值。
并且,处理一些gcd问题时,质因数分解的考虑方式也值得去尝试。
bzoj4807 車的更多相关文章
- BZOJ4807:車(组合数学,高精度)
Description 众所周知,車是中国象棋中最厉害的一子之一,它能吃到同一行或同一列中的其他棋子.車跟車显然不能在一起打起来,于是rly一天又借来了许多许多的車在棋盘上摆了起来……他想知道,在N× ...
- Python 基礎 - 元組與簡易購物車實做
tuple(元組) 其實跟列表差不多,也是存一組數,只不過是它一旦建立了,就不能修改了,只能做 切片 跟 查詢,所以只叫 只讀列表 語法: name = ("Rogers", &q ...
- CH6802 車的放置 和 CH6B24 Place the Robots
6802 車的放置 0x60「图论」例题 描述 给定一个N行M列的棋盘,已知某些格子禁止放置.问棋盘上最多能放多少个不能互相攻击的車.車放在格子里,攻击范围与中国象棋的"車"一致. ...
- AcWing P373 車的放置
Analysis 这道题是二分图匹配,设可以放車的的地方的坐标为(i,j),则连一条i到j的有向边(注意是有向边),然后再跑匈牙利算法就好了.时间复杂度是O(nm(n+m)),在1≤n,m≤200的情 ...
- 車(rook)
[题目分析] JustPenz:我们假设n>m(不大于就交换),那最多能摆m个,所以会有(n-m)个空白,我们把这些空白插入到n中,答案就是C(n,n-m)=C(n,m);数据范围比较大,我们就 ...
- GT sport真实赛道详解 - Brands Hatch | 伯蘭士赫治GP賽車場
参考:GT sport所有赛道简介 GT Sport - Tip/Guide For FASTER LAP TIMES (Brands Hatch) 赛道介绍.跑法.赛事网上都有大把的视频. GT s ...
- CH6802 車的放置
原题链接 和棋盘覆盖(题解)差不多. 将行和列看成\(n+m\)个节点,且分属两个集合,如果某个节点没有被禁止,则行坐标对应节点向列坐标对应节点连边,然后就是求二分图最大匹配了. #include&l ...
- [題解](最小生成樹/LCA)luogu_P1967貨車運輸
一道好題不出所料又抄的題解 1.首先對於這張圖肯定要考慮走哪些邊不走哪些邊,發現我們想要的肯定那些邊權最大的邊,所以想到最大生成樹 這樣能保證選到盡量大的邊 2.跑完最大生成樹后每兩點之間就有唯一路徑 ...
- 【2018.9.20】JOI 2017 Final T2「準急電車 / Semiexpress」
题目描述 JOI 铁路公司是 JOI 国唯一的铁路公司. 在某条铁路沿线共有 $N$ 座车站,依次编号为 $1...N$. 目前,正在服役的车次按照运行速度可分为两类:高速电车(简称快车)与普通电车( ...
随机推荐
- [CF1017G]The Tree[树链剖分+线段树]
题意 给一棵一开始 \(n\) 个点全是白色的树,以 \(1\) 为根,支持三种操作: 1.将某一个点变黑,如果已经是黑色则该操作对所有儿子生效. 2.将一棵子树改成白色. 3.询问某个点的颜色. \ ...
- Flutter - 创建侧滑菜单(不使用navigatior,仅改变content)
之前写过一篇文章,Flutter - 创建横跨所有页面的侧滑菜单.这个里面中使用了Navigator.of(context).push来导航到新的页面. 这次介绍一种不使用导航,仅仅改变content ...
- 微信小程序实现各种特效实例
写在前面 最近在负责一个微信小程序的前端以及前后端接口的对接的项目,整体上所有页面的布局我都已经搭建完成,里面有一些常用的特效,总结一下,希望对大家和我都能有所帮助 实例1:滚动tab选项卡 先看一下 ...
- TensorFlow训练MNIST数据集(1) —— softmax 单层神经网络
1.MNIST数据集简介 首先通过下面两行代码获取到TensorFlow内置的MNIST数据集: from tensorflow.examples.tutorials.mnist import inp ...
- 【DDD】领域驱动设计实践 —— 业务建模战术
本文结合团队在COMMUNITY(社区服务系统)业务建模过程中的实践经验,总结得到一些DDD业务建模的小招数,不一定是完美的,但是对我们团队来说很有效用,希望能帮到其他人.后面会陆续将项目中业务建模的 ...
- C#_备份sqlserver数据库
C# 代码备份数据库 ,不需要 其他 DLL protected void Button1_Click(object sender, EventArgs e) { /// ...
- sqli-labs 下载、安装
sqli-labs 下载.安装 下载地址:https://github.com/Audi-1/sqli-labs phpstudy:http://down.php.cn/PhpStudy2018021 ...
- [咸恩静][Love effect]
歌词来源:http://music.163.com/#/song?id=31877654 作曲 : Monster Factory/양승욱 [作曲 : Monster Factory/yang-seu ...
- 团队博客 Week14
0. 在吹牛之前,先回答这个问题: 如果你的团队来了一个新队员,有一台全新的机器, 你们是否有一个文档,只要设置了相应的权限,她就可以根据文档,从头开始搭建环境,并成功地把最新.最稳定版本的软件编译出 ...
- 第三次作业--导入excel表格(完整版)
031302322 031302316 将教师排课表导入系统 使用powerdesigner设计数据库表格 设计概念模型 打开new -> Conceptual Data Model创建概念模型 ...