BZOJ 4454: C Language Practice
4454: C Language Practice
Time Limit: 20 Sec Memory Limit: 24 MB
Submit: 501 Solved: 112
[Submit][Status][Discuss]
Description

Input
Output
Sample Input
3 2
5 9 6
3 4
2 2
8 9
0 6
1 1
9
6
Sample Output
22
3
HINT
注意:此题只有一个数据点。
Source
$O(N)-O(1)$的gcd黑科技
#include <cstdio> inline char Char(void)
{
static const int siz = ; static char buf[siz];
static char *hd = buf + siz;
static char *tl = buf + siz; if (hd == tl)
fread(hd = buf, , siz, stdin); return *hd++;
} inline int Int(void)
{
int ret = , neg = , c = Char(); for (; c < ; c = Char())
if (c == '-')neg ^= true; for (; c > ; c = Char())
ret = ret * + c - ''; return neg ? -ret : ret;
} int g[][]; int fac[][]; int pre[], pri[], tot; inline int gcd(int a, int b)
{
if (a <= && b <= )
return g[a][b]; int ret = ; for (int i = ; i < ; ++i)
if (fac[a][i] != )
{
int t = fac[a][i]; if (pre[t])
{
int d = g[t][b % t];
ret *= d, b /= d;
}
else if (b % t == )
ret *= t, b /= t;
} return ret;
} signed main(void)
{
for (int i = ; i <= ; ++i)
for (int j = ; j <= ; ++j)
if (i == || j == )
g[i][j] = i + j;
else if (g[j][i % j])
g[i][j] = g[j][i % j];
else if (g[i % j][j])
g[i][j] = g[i % j][j];
else if (g[i][j % i])
g[i][j] = g[i][j % i];
else if (g[j % i][i])
g[i][j] = g[j % i][i]; fac[][] = fac[][] = fac[][] = ; for (int i = ; i <= ; ++i)
{
if (!pre[i])pri[++tot] = i,
fac[i][] = fac[i][] = , fac[i][] = i; for (int j = ; j <= tot && pri[j] * i <= ; ++j)
{
int num = pri[j] * i, p = pri[j]; pre[num] = p;
fac[num][] = fac[i][];
fac[num][] = fac[i][];
fac[num][] = fac[i][]; if (fac[num][] * p <= )
fac[num][] *= p;
else if (fac[num][] * p <= )
fac[num][] *= p;
else
fac[num][] *= p;
}
} for (int cas = Int(); cas--; )
{
static int n, m, a[], b[]; n = Int();
m = Int(); for (int i = ; i < n; ++i)
a[i] = Int(); for (int i = ; i < m; ++i)
b[i] = Int(); unsigned ans = ; for (int i = ; i < n; ++i)
for (int j = ; j < m; ++j)
ans += gcd(a[i], b[j]) ^ i ^ j; printf("%u\n", ans);
}
}
@Author: YouSiki
BZOJ 4454: C Language Practice的更多相关文章
- BZOJ4454: C Language Practice
Description Input 第一行输入一个正整数T(T<=85),表示测试数据的组数. 每组数据第一行包含两个正整数n,m(1<=n,m<=2000),表示序列的长度. 第二 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 英语口语考试资料Language learning
"Learning a language is easy. Even a child can do it!" Most adults who are learning a seco ...
- 100 天从 Python 新手到大师
Python应用领域和就业形势分析 简单的说,Python是一个“优雅”.“明确”.“简单”的编程语言. 学习曲线低,非专业人士也能上手 开源系统,拥有强大的生态圈 解释型语言,完美的平台可移植性 支 ...
- Python - 100天从新手到大师
简单的说,Python是一个“优雅”.“明确”.“简单”的编程语言. 学习曲线低,非专业人士也能上手 开源系统,拥有强大的生态圈 解释型语言,完美的平台可移植性 支持面向对象和函数式编程 能够通过调用 ...
- 国内某Python大神自创完整版,系统性学习Python
很多小伙伴纠结于这个一百天的时间,我觉得完全没有必要,也违背了我最初放这个大纲上来的初衷,我是觉得这个学习大纲还不错,自学按照这个来也能相对系统的学习知识,而不是零散细碎的知识最后无法整合,每个人的基 ...
- 课程五(Sequence Models),第二 周(Natural Language Processing & Word Embeddings) —— 0.Practice questions:Natural Language Processing & Word Embeddings
[解释] The dimension of word vectors is usually smaller than the size of the vocabulary. Most common s ...
- 【BZOJ】【3053】The Closest M Points
KD-Tree 题目大意:K维空间内,与给定点欧几里得距离最近的 m 个点. KD树啊……还能怎样啊……然而扩展到k维其实并没多么复杂?除了我已经脑补不出建树过程……不过代码好像变化不大>_&g ...
- BZOJ 4576: [Usaco2016 Open]262144
Description 一个序列,每次可以将两个相同的数合成一个数,价值+1,求最后最大价值 \(n \leqslant 262144\) Sol DP. 这道题是 BZOJ 4580: [Usaco ...
随机推荐
- 统计学习方法c++实现之八 EM算法与高斯混合模型
EM算法与高斯混合模型 前言 EM算法是一种用于含有隐变量的概率模型参数的极大似然估计的迭代算法.如果给定的概率模型的变量都是可观测变量,那么给定观测数据后,就可以根据极大似然估计来求出模型的参数,比 ...
- 六边形地图Cube coordinates理解
1.这个是 Axial coordinates,可以实现六边形4个方向上的移动 2.但是六边形还有两个方向需要移动,所以引入了Cube coordinates,这个坐标系多了一个轴向,Y轴,X轴沿水平 ...
- Spring Boot之拦截器与过滤器(完整版)
作者:liuxiaopeng 链接:http://www.cnblogs.com/paddix 作者:蓝精灵lx原文:https://blog.csdn.net/liuxiao723846/artic ...
- 【转】利用telnet来进行调试Skynet
https://blog.csdn.net/WhereIsHeroFrom/article/details/80674408
- MineCraft | 命令附魔
随时更 来一条命令: /give @p diamond_axe 1 0 {ench:[{id:16,lvl:32767},{id:17,lvl:32767},{id:18,lvl:32767}]} g ...
- alias命令详情
基础命令学习目录首页 原文链接:http://c.biancheng.net/view/938.html 给命令设置别名,你可以把它当作命令的"小名",但是这样做有什么意义呢? 比 ...
- textarea拖拽控制
一.用处 textarea默认时允许用户以拖拽形式来改变textarea大小,但textarea的大小变化会撑大其父节点,有时会破坏整体布局,有时我们并不希望textarea随意拖拽. forklif ...
- Ubuntu 1804 本地显示远程服务器文件
本地是 Ubuntu 1804 最近想查看服务器上的图片,之前都是scp到本地,感觉太麻烦,于是查到有一种方法,ssh图形界面那种: 1.在File 界面下,左侧文件栏的最后一列有 “+ Other ...
- bash登录过程 其实还不太了解,先码后看
在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile. ~/.bash_login或 ~/.profile文件中的其中一个,执行的顺序 ...
- VS AI 手写数字识别应用
看过我上一篇文章的朋友应该知道,我用VS训练出了minst模型.output目录中有.pb文件. 关于.pb文件的介绍见[参考链接] (https://stackoverflow.com/questi ...