Hankson 的趣味题
题解:
硬是把一道傻逼题写到了200行。。
长长的模板就有70行。。
由于我没有做的时候觉得并不保证$a1|a0$ $b0|b1$ 然后就加了很多特判。。
我的做法就是暴力分解质因数
T*sqrt(n)/log(n)
#include <bits/stdc++.h>
using namespace std;
#define rint register int
#define rg register
#define IL inline
#define ll long long
#define rep(i,h,t) for (int i=h;i<=t;i++)
#define dep(i,t,h) for (int i=t;i>=h;i--)
#define setit set<int>::iterator
#define fi first
#define se second
#define mp make_pair
#define me(x) memset(x,0,sizeof(x))
#define mid ((h+t)>>1)
#define mid2 ((h+t+1)>>1)
char ss[<<],*A=ss,*B=ss;
IL char gc()
{
return A==B&&(B=(A=ss)+fread(ss,,<<,stdin),A==B)?EOF:*A++;
}
template<class T>void read(T &x)
{
rint f=,c; while (c=gc(),c<||c>) if (c=='-') f=-; x=(c^);
while (c=gc(),c>&&c<) x=(x<<)+(x<<)+(c^); x*=f;
}
char sr[<<],z[]; int Z,C=-;
template<class T>void wer(T x)
{
if (x<) sr[++C]='-',x=-x;
while (z[++Z]=x%+,x/=);
while (sr[++C]=z[Z],--Z);
}
IL void wer1()
{
sr[++C]=' ';
}
IL void wer2()
{
sr[++C]='\n';
}
template<class T>IL void maxa(T &x,T y)
{
if (x<y) x=y;
}
template<class T>IL void mina(T &x,T y)
{
if (x>y) x=y;
}
template<class T>IL T MAX(T x,T y)
{
return x>y?x:y;
}
template<class T>IL T MIN(T x,T y)
{
return x<y?x:y;
}
const int N=5e4;
const int M=N+1e3;
int f[M],cnt,g1[M],g2[M],g3[N],g4[N];
bool t[M],tt;
IL int fj(int *a,int b)
{
rep(i,,cnt)
while (b%f[i]==) a[i]++,b/=f[i];
return b;
}
IL void prf()
{
wer(); wer2();
tt=;
}
int main()
{
freopen("1.in","r",stdin);
freopen("1.out","w",stdout);
rep(i,,N)
if (!t[i])
{
for (int j=;j*i<=N;j++) t[i*j]=;
}
rep(i,,N) if (!t[i]) f[++cnt]=i;
int n,a0,a1,b0,b1;
read(n);
rep(i,,n)
{
read(a0); read(a1); read(b0); read(b1);
rep(j,,cnt) g1[j]=g2[j]=g3[j]=g4[j]=;
int t1,t2,t3,t4;
t1=fj(g1,a0); t2=fj(g2,a1);
t3=fj(g3,b0); t4=fj(g4,b1);
ll ans=;
tt=;
rep(i,,cnt)
{
if (g1[i]<g2[i]||g3[i]>g4[i])
{
prf(); break;
}
if (g1[i]>g2[i])
{
if (g3[i]<g4[i])
if (g4[i]!=g2[i])
{
prf(); break;
}
if (g3[i]==g4[i])
{
if (g3[i]<g2[i])
{
prf(); break;
}
}
} else
{
if (g3[i]<g4[i])
if (g4[i]<g2[i])
{
prf(); break;
}
if (g3[i]==g4[i])
{
if (g3[i]<g2[i])
{
prf(); break;
} else
{
ans*=(g3[i]-g2[i]+);
}
}
}
}
if (tt) continue;
if (t2!=)
{
if (t1!=t2)
{
prf();
} else
{
if ((t3!=&&t3!=t2)||(t4!=t2)) prf();
else wer(ans),wer2();
}
} else
{
if (t1==)
{
if (t4==&&t3==)
{
wer(ans); wer2();
} else
if (t4==&&t3!=)
{
prf();
} else
if (t4!=&&t3==)
{
wer(ans); wer2();
} else
{
if (t4==t3) wer(ans*),wer2();
else prf();
}
} else
{
if (t4==&&t3==)
{
wer(ans); wer2();
} else
if (t4==&&t3!=)
{
prf();
} else
if (t4!=&&t3==)
{
if (t1!=t4) wer(ans),wer2();
else prf();
} else
{
if (t3==t4)
if (t3!=t1) wer(ans*),wer2();
else wer(ans),wer2();
else prf();
}
}
}
}
fwrite(sr,,C+,stdout);
return ;
}
Hankson 的趣味题的更多相关文章
- 算法训练 Hankson的趣味题
算法训练 Hankson的趣味题 时间限制:1.0s 内存限制:64.0MB 问题描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Han ...
- 1172 Hankson 的趣味题[数论]
1172 Hankson 的趣味题 2009年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Descrip ...
- 1172 Hankson 的趣味题
1172 Hankson 的趣味题 2009年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Descrip ...
- Codevs 1172 Hankson 的趣味题 2009年NOIP全国联赛提高组
1172 Hankson 的趣味题 2009年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description Hanks 博 ...
- 一本通1626【例 2】Hankson 的趣味题
1626:[例 2]Hankson 的趣味题 题目描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Hankson.现在,刚刚放学回家的Hankson 正在思考 ...
- 洛谷 P1072 Hankson 的趣味题 解题报告
P1072 \(Hankson\)的趣味题 题目大意:已知有\(n\)组\(a0,a1,b0,b1\),求满足\((x,a0)=a1\),\([x,b0]=b1\)的\(x\)的个数. 数据范围:\( ...
- CH3201 Hankson的趣味题
题意 3201 Hankson的趣味题 0x30「数学知识」例题 描述 Hanks博士是BT(Bio-Tech,生物技术)领域的知名专家,他的儿子名叫Hankson.现在,刚刚放学回家的Hankson ...
- luogu P1072 Hankson的趣味题
题目链接 luogu P1072 Hankson 的趣味题 题解 啊,还是noip的题好做 额,直接推式子就好了 \(gcd(x,a_0)=a_1=gcd(\frac{x}{a_1},\frac{a_ ...
- 洛谷P1072 Hankson 的趣味题
P1072 Hankson 的趣味题 题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一 ...
- NOIP 2009 Hankson 的趣味题
洛谷 P1072 Hankson 的趣味题 洛谷传送门 JDOJ 1648: [NOIP2009]Hankson的趣味题 T2 JDOJ传送门 Description Hanks 博士是BT (Bio ...
随机推荐
- Python3学习笔记01-环境安装和运行环境
最近在学习Python3,想写一些自己的学习笔记.方便自己以后看,主要学习的资料来自菜鸟教程的Python3教程和廖雪峰官方网站的Python教程. 1.下载 1)打开https://www.pyth ...
- 题解-ZeroJudge-c686 高斯符號
Problem ZeroJudge Solution 考慮到\(\lfloor \frac {km}n\rfloor\)等同於\(km\)整除\(n\),換種表示方法就是\(km\)減去\(km\)模 ...
- Linux mem/swap/buffers/cached 区别
Free free 命令相对于top 提供了更简洁的查看系统内存使用情况: $ free total used free shared buffers cached Mem: 255268 23833 ...
- 转-C语言中.h和.c文件解析
C语言中.h和.c文件解析(很精彩) 简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词 ...
- C/C++中如何在main()函数之前执行一条语句?
在C语言中,如果使用GCC的话,可以通过attribute关键字声明constructor和destructor(C语言中如何在main函数开始前执行函数) #include <stdio.h& ...
- python相关的安装软件
本次安装的系统是WINDOWS系统 一.python3.anaconda和python2 1.准备工具:python3.python2安装包可以直接从官网下载https://www.python.or ...
- ueditor使用
<html> <head> <meta charset="UTF-8"> <title></ ...
- js——作用域和闭包
1. js是编译语言,但是它不是提前编译,编译结果不能在分布式系统中移植.大部分情况下,js的编译发生在代码执行前的几微秒(甚至更短) 2. 一般的编译步骤 分词/词法分析:把字符串分解成词法单元 ...
- linux 批量进行:解压缩某一类压缩文件类型的文件
1: 编写脚本 [oracle@oracle oracle]$ vim unzip.sh ziphome=/u01/app/oracle ziplist=`du -a $ziphome |grep ' ...
- Confluence 6 为发送邮件配置服务器
配置你的 Confluence 服务器发送电子邮件消息能够允许你的 Confluence 用户: 接受邮件通知和每天更新报表. 通过电子邮件发送一个页面. 你可以通过配置 'From' 字段中的内容来 ...