南京网络赛题解 2018

J. Sum

A square-free integer is an integer which is indivisible by any square number except 111. For example, 6=2⋅36 = 2 \cdot 36=2⋅3 is square-free, but 12=22⋅312 = 2^2 \cdot 312=22⋅3 is not, because 222^222 is a square number. Some integers could be decomposed into product of two square-free integers, there may be more than one decomposition ways. For example, 6=1⋅6=6⋅1=2⋅3=3⋅2,n=ab6 = 1\cdot 6=6 \cdot 1=2\cdot 3=3\cdot 2, n=ab6=1⋅6=6⋅1=2⋅3=3⋅2,n=ab and n=ban=ban=ba are considered different if a?=ba \not = ba?=b. f(n)f(n)f(n) is the number of decomposition ways that n=abn=abn=ab such that aaa and bbb are square-free integers. The problem is calculating ∑i=1nf(i)\sum_{i = 1}^nf(i)∑i=1n?f(i).

Input

The first line contains an integer T(T≤20)T(T\le 20)T(T≤20), denoting the number of test cases.

For each test case, there first line has a integer n(n≤2⋅107)n(n \le 2\cdot 10^7)n(n≤2⋅107).

Output

For each test case, print the answer ∑i=1nf(i)\sum_{i = 1}^n f(i)∑i=1n?f(i).

Hint

∑i=18f(i)=f(1)+?+f(8)\sum_{i = 1}^8 f(i)=f(1)+ \cdots +f(8)∑i=18?f(i)=f(1)+?+f(8)
=1+2+2+1+2+4+2+0=14=1+2+2+1+2+4+2+0=14=1+2+2+1+2+4+2+0=14.

样例输入

2
5
8

样例输出

8
14

题目来源

ACM-ICPC 2018 南京赛区网络预赛

解析:题目求和1-n的各个数的非平方因子的和,与质数有关,或者用积性函数线性筛。

提交验证代码处:https://nanti.jisuanke.com/t/30999

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define LL long long
 4
 5 int t;
 6 LL n;
 7 const int maxn = 22000000;
 8 bool tag[maxn];
 9 int p[maxn/10];
10 int cnt;
11 LL sum[maxn];
12 void GetPrime()
13 {
14     cnt = 0;
15     sum[1] = 1;
16     for(int i = 2; i < maxn; i++)
17     {
18         if(!tag[i])
19         {
20             p[cnt++] = i;
21             sum[i] = 2;
22         }
23         for(int j = 0; j < cnt && p[j] * i < maxn; j++)
24         {
25             tag[i * p[j]] = 1;
26             if(i % p[j] == 0)
27             {
28                 int qq = 0, xx = i;
29                 LL v = 1;
30                 while (xx%p[j]==0)
31                 {
32                     qq ++;
33                     v *= p[j];
34                     xx/=p[j];
35                 }
36                 v *= p[j];
37                 if (qq >= 2)
38                 {
39                     sum[i*p[j]] = 0;
40                 }
41                 else if(qq == 1)
42                 {
43                     sum[i*p[j]] = sum[i] / 2;
44                 }
45                 break;
46             }
47             sum[i*p[j]] = sum[i] * 2;
48         }
49     }
50     for (int i = 1; i < maxn; i++)
51     {
52         sum[i] += sum[i-1];
53     }
54 }
55 int main()
56 {
57     GetPrime();
58     cin >> t;
59     while(t--)
60     {
61         scanf("%lld", &n);
62         printf("%lld\n", sum[n]);
63     }
64     return 0;
65 }

原文地址:https://www.cnblogs.com/weixq351/p/9573604.html

时间: 2024-11-05 22:52:14

南京网络赛题解 2018的相关文章

The Preliminary Contest for ICPC Asia Nanjing 2019/2019南京网络赛——题解

(施工中……) 比赛传送门:https://www.jisuanke.com/contest/3004 D. Robots(期望dp) 题意 给一个DAG,保证入度为$0$的点只有$1$,出度为$0$的点只有$n$. 现在一个机器人从$1$出发,每天都会以相同的概率前往相邻节点之一或静止不动. 每天机器人消耗的耐久等于经过的天数. 求机器人到点$n$期望消耗的耐久. 划水划的很愉快,唯一一道做出来的题.但是和题解做法不同(感觉我的方法麻烦),因此砸了3h在这题上面(正在试图读懂题解ing). 设

2018ICPC南京网络赛

2018ICPC南京网络赛 A. An Olympian Math Problem 题目描述:求\(\sum_{i=1}^{n} i\times i! \%n\) solution \[(n-1) \times (n-1)! \% n= (n-2)!(n^2-2n+1) \%n =(n-2)!\] \[(n-2+1)\times (n-2)! \% n= (n-3)!(n^2-3n+2) \%n =(n-3)! \times 2\] 以此类推,最终只剩下\(n-1\) 时间复杂度:\(O(1)\

20180909徐州网络赛题解

目录 20180909徐州网络赛题解 A. Hard to prepare MEANING SOLUTION CODE B. BE, GE or NE MEANING SOLUTION CODE F. Features Track CODE G. Trace MENING SOLUTION CODE H. Ryuji doesn't want to study MEANING CODE I. Characters with Hash CODE J. Maze Designer MEANING S

2019ICPC南京网络赛A题 The beautiful values of the palace(三维偏序)

2019ICPC南京网络赛A题 The beautiful values of the palace https://nanti.jisuanke.com/t/41298 Here is a square matrix of n * nn?n, each lattice has its value (nn must be odd), and the center value is n * nn?n. Its spiral decline along the center of the squar

计蒜客 2018南京网络赛 I Skr ( 回文树 )

题目链接 题意 : 给出一个由数字组成的字符串.然后要你找出其所有本质不同的回文子串.然后将这些回文子串转化为整数后相加.问你最后的结果是多少.答案模 1e9+7 分析 : 应该可以算是回文树挺裸的题目吧 可惜网络赛的时候不会啊.看着马拉车想半天.卒... 对于每一个节点.记录其转化为整数之后的值 然后在回文串插入字符的时候 不断维护这个信息就行了 其实很好理解.看一下代码就懂了 ( 如果你学过回文树的话... ) 就是多加了变量 val .维护语句 #include<bits/stdc++.h

ACM 2018 南京网络赛H题Set解题报告

题目描述 给定\(n\)个数$a_i$,起初第\(i\)个数在第\(i\)个集合.有三种操作(共\(m\)次): 1 $u$ $v$ 将第$u$个数和第$v$个数所在集合合并 2 $u$ 将第$u$个数所在集合所有数加1 3 $u$ $k$ $x$ 问$u$所在集合有多少个数模$2^k$余$x$. 数据范围:\(n,m \le 500000,a_i \le 10^9, 0 \le k \le 30\). 简要题解 显然此题可以用set加启发式合并在\(O(n \log ^2 n)\)时间复杂度解

Magical Girl Haze 南京网络赛2018

题意: 就是使不大于k条路的权值变为零后求最短路 解析: d[i][j]表示使j条路变为权值后从起点到点i的最短路径 这题不能用spfa做  tle #include <iostream> #include <cstdio> #include <sstream> #include <cstring> #include <map> #include <cctype> #include <set> #include <v

ICPC 2018 南京网络赛 J Magical Girl Haze(多层图最短路)

传送门:https://nanti.jisuanke.com/t/A1958 题意:n个点m条边的路,你有k次机会将某条路上的边权变为0,问你最短路径长度 题解:最短路变形,我们需要在常规的最短路上多开 一维,记录,我消耗j次机会时的最短路径长度为多少 代码: /** * ┏┓ ┏┓ * ┏┛┗━━━━━━━┛┗━━━┓ * ┃ ┃ * ┃ ━ ┃ * ┃ > < ┃ * ┃ ┃ * ┃... ⌒ ... ┃ * ┃ ┃ * ┗━┓ ┏━┛ * ┃ ┃ Code is far away fro

2018 ICPC南京网络赛 Set(字典树 + 合并 + lazy更新)

题解:n个集合,你要进行m个操作.总共有3种操作.第一种,合并两个集合x和y.第二张,把特定的集合里面所有的数字加一.第三种,询问在某个集合里面,对于所有数字对2的k次方取模后,有多少个数字等于x. 思路:我们可以对于每一个节点保存一个lazy标记,这个标记类似于线段树中的lazy标记.每次整个集合增加的时候,只改变lazy标记,然后在下一次访问这个节点的时候,再去把这个标记push_down.而这个push_down的方式就是按照之前说的那样,根据lazy的奇偶来判断是否应该交换儿子和额外进位