[luogu6860]象棋与马
根据扩欧$(a,b)=1$必须要满足,同时,若$a+b$为偶数则格子的”奇偶性“不变,因此$a+b$必须为奇数
反过来,容易证明满足$(a,b)=1$且$a+b$为奇数则一定可行(构造从$(0,0)$到$(0,1)$的一组解即可)
不妨假设$a$为奇数、$b$为偶数(答案再乘以2),分两类考虑:
1.$a<b$,显然与$b$互素的数必然是奇数,因此即$\sum_{2i\le n}\varphi(2i)$
2.$a>b$,由于$(a,b)=1$等价于$(a,a-b)=1$,因此每一个小于$a$且与$a$互素的奇数与另一个偶数对应,因此即$\sum_{2i+1\le n}\frac{\varphi(2i+1)}{2}$
不妨先把答案的2乘进去,那么即$f_{n}=\sum_{i=1}^{n}\varphi(i)+\sum_{2i\le n}\varphi(2i)$(偶数要算两次)
根据积性或$\varphi$的计算过程,若$i$为奇数,则有$\varphi(2i)=\varphi(i)$,若$i$为偶数,则$\varphi(2i)=2\varphi(i)$
对于$\sum_{2i\le n}\varphi(2i)$,对$i$的奇偶性分类讨论,即$\sum_{2i\le n}\varphi(2i)=\sum_{4i\le n}\varphi(2i)+\sum_{4i+2\le n}\varphi(2i+1)=f_{\frac{n}{2}}$
根据$f_{n}=\sum_{i=1}^{n}\varphi(i)+f_{\frac{n}{2}}$,再用杜教筛优化,时间复杂度可以做到$o(Tn^{\frac{2}{3}}\log_{2}n)$,可以通过

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 40000005
4 #define ull unsigned long long
5 int t,vis[N],p[N];
6 ull n,ans,phi[N];
7 map<ull,ull>mat;
8 ull calc(ull n){
9 if (n<N-4)return phi[n];
10 if (mat[n])return mat[n];
11 ull ans;
12 if (n&1)ans=(n+1)/2*n;
13 else ans=n/2*(n+1);
14 for(ull i=2,j;i<=n;i=j+1){
15 j=n/(n/i);
16 ans-=(j-i+1)*calc(n/i);
17 }
18 return mat[n]=ans;
19 }
20 int main(){
21 phi[1]=1;
22 for(int i=2;i<N-4;i++){
23 if (!vis[i]){
24 p[++p[0]]=i;
25 phi[i]=i-1;
26 }
27 for(int j=1;(j<=p[0])&&(i*p[j]<N-4);j++){
28 vis[i*p[j]]=1;
29 if (i%p[j])phi[i*p[j]]=phi[i]*phi[p[j]];
30 else{
31 phi[i*p[j]]=phi[i]*p[j];
32 break;
33 }
34 }
35 }
36 for(int i=2;i<N-4;i++)phi[i]=phi[i]+phi[i-1];
37 scanf("%d",&t);
38 while (t--){
39 scanf("%llu",&n);
40 ans=0;
41 while (n>1){
42 ans+=calc(n);
43 n/=2;
44 }
45 printf("%llu\n",ans);
46 }
47 }
[luogu6860]象棋与马的更多相关文章
- 洛谷 P6860 - 象棋与马(找性质+杜教筛)
题面传送门 首先我们来探究一下什么样的 \((a,b)\) 满足 \(p(a,b)=1\).不难发现只要点 \((1,0)\) 能够到达,那么网格上所有点都能到达,因为由于 \((1,0)\) 能够到 ...
- Solution -「LGR-087」「洛谷 P6860」象棋与马
\(\mathcal{Description}\) Link. 在一个 \(\mathbb R^2\) 的 \((0,0)\) 处有一颗棋子,对于参数 \(a,b\),若它当前坐标为 \((x ...
- hdu1372 dfs搜索之国际象棋的马
原题地址 题意 一个8x8的国际象棋棋盘,你有一个棋子"马".算出棋子"马"从某一格到还有一格子的最少步数. 与普通dfs不同的是,你能走的路线不是上下左右,四 ...
- 【算法】深度优先 马走日 Hamilton routes
在n*m的棋盘中,马只能走“日” 字.马从位置(x,y)处出发,把棋盘的每一格都走一次,且只走一次.找出所有路径. ××××××××××××× 类似问题: 在半个中国象棋棋盘上,马在左下角(1,1)处 ...
- uva-439
题意:骑士在一个8*8的棋盘上移动,1-8代表行号,a-h代表列号,给出骑士的初始位置和目的位置,求骑士最少的移动步数:题目隐含一层意思(骑士移动规则是中国象棋的“马”的走法) 输入:一串字符串,包含 ...
- UML从需求到实现---类图(1)
上次写到了UML的包图,用例等:接上:UML从需求到实现---包图 按照UML中图的出现顺序.当做完包图以后.我们下一步要做的当然是类图,类图也是UML中的三大核心图之一. 看到很多文章在描述类图的时 ...
- TYVJ P1074 武士风度的牛 Label:跳马问题
背景 农民John有很多牛,他想交易其中一头被Don称为The Knight的牛.这头牛有一个独一无二的超能力,在农场里像Knight一样地跳(就是我们熟悉的象棋中马的走法).虽然这头神奇的牛不能跳到 ...
- HDU 5794 A Simple Chess (容斥+DP+Lucas)
A Simple Chess 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5794 Description There is a n×m board ...
- UVA Knight Moves
题目例如以下: Knight Moves A friend of you is doing research on the Traveling Knight Problem (TKP) where ...
随机推荐
- S_型文法到q_型文法再到LL(1)型文法演进笔记
title: S_型文法到q_型文法再到LL(1)型文法演进笔记 date: 2020-08-23 S_型文法到q_型文法再到LL(1)型文法演进笔记 S_型文法(简单的确定性文法) 每个产生式的右部 ...
- 高德最佳实践:Serverless 规模化落地有哪些价值?
作者 | 何以然(以燃) 导读:曾经看上去很美.一直被观望的 Serverless,现已逐渐进入落地的阶段.今年的"十一出行节",高德在核心业务规模化落地 Serverless,由 ...
- Java到底怎么学?
你现在是不是想学Java,但很迷茫不知该从何下手,那么请认真看完这篇文章,希望对你有所帮助! 作为零基础刚刚接触Java的朋友们来说,我的建议还是先看视频,虽然有很多人说看视频学习慢,建议直接买优秀的 ...
- YouTube爬虫下载
最近在想用爬虫写youtube网站下载学习视频,找了好多资料也没有有个有用的. 真不容易找到几行代码,代码实现很简单,基于youtube_dl 来之不易,仅参考 from __future__ imp ...
- 2020.5.16-ICPC Central Europe Regional Contest 2019
A. ABB #include <bits/stdc++.h> using namespace std; #define PB push_back #define ZERO (1e-10) ...
- 从零到熟悉,带你掌握Python len() 函数的使用
摘要:本文为你带来如何找到长度内置数据类型的使用len() 使用len()与第三方数据类型 提供用于支持len()与用户定义的类. 本文分享自华为云社区<在 Python 中使用 len() 函 ...
- 【UE4 材质】一些小功能
利用材质实现物体自转 物体外轮廓高亮 使用postprocess+custom depth(防遮挡) https://www.tomlooman.com/soft-outlines-in-ue4/ h ...
- UltraSoft - Beta - Scrum Meeting 10
Date: May 26th, 2020. Scrum 情况汇报 进度情况 组员 负责 今日进度 q2l PM.后端 记录Scrum Meeting Liuzh 前端 暂无 Kkkk 前端 前端增加了 ...
- CSP-S2021幽寂
不管怎么说,这次比赛考的比这一段时间以来的模拟赛都难看 难受,但是也不想太表现出来,所以更难受.... 有点害怕会退役...... Day -6 前一天晚上回宿舍的时候和\(zxs\)一路,聊的过程中 ...
- Noip模拟37 2021.8.12
T1 数列 真是考场上不是数学的乱推柿子,想定理,是数学的没想出来.. 比较悲伤... 列柿子不用动脑子,就是没有想出来$EXgcd$解不定方程,淦.. 解处一组解后利用比较显然的性质: $x+\fr ...