
数论
Huglight
这个作者很懒,什么都没留下…
展开
-
XDU暑训2019 Day7 LightOJ 1370 欧拉函数
题意:给定一个序列,每个序列需要有一个对应的值,这个值为大于等于该序列值的欧拉函数值,求序列中所有这些值相加最小值思路:欧拉函数:小于n的正整数中与n互质的数的数目。若x为素数,则phi(x) = x-1(除1外小于x的数都和x互质),故可以从t+1开始找第一个出现的素数,该数即为t对应最小值//直接求欧拉函数值#include<iostream>#include<c...原创 2019-07-09 16:54:50 · 162 阅读 · 0 评论 -
Codeforces 1196B Odd Sum Segments
题意:给一串序列,需要将序列划分成k组,要求每组连续的子序和为奇数,存在答案则输出答案每个区间的右端点思路:还是先想到暴力回溯,结果还是超时了#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 2e5+5;const int inf = 0x3f3f3f3f;ll...原创 2019-07-25 11:02:05 · 313 阅读 · 0 评论 -
Codeforces 1206D Shortest Cycle Floyd 无向图最小环
题意:给出一串序列,若序列中两个数相与不为0,则可以在两数之间连一条边,求出这些数中存在的最小环中节点的个数,不存在环输出-1思路:找无向图中最小环方法:用floyd在松弛的同时找环,保证环最小。但这样的话按照题目的数据量必定会超时,而实际上只要不为0的数小于128个,就需要floyd求解,大于128个最小环节点数就是3,至于为什么现在还没弄明白#include<bits/stdc++....原创 2019-08-19 15:27:58 · 252 阅读 · 0 评论 -
Codeforces 1203C. Common Divisors gcd
题意:给一串序列,求出序列中所有数的公因数的个数思路:先用gcd求出最大公因数g,之后再求其因数的个数即可。对于一个数i,若i*i <= g,则i*i也是g的因数#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 4e5+5;const int inf = 0...原创 2019-09-08 18:47:12 · 369 阅读 · 0 评论 -
Codeforces 1195D1. Submarine in the Rybinsk Sea 快速幂 思维
题意:定义函数f(a,b)值为b中所有位和a中所有位由b开始从右到左交叉,如f(1111,2222)=12121212,f(33,44444)=4443434,给出n个位数相同的数,求出每个数和其他所有数(包括自己)的f值的和,求出所有数的这样的和值模998244353,即∑ni=1∑nj=1f(ai,aj) % 998244353。思路:观察可以发现,两个数交叉得到的两个值之和相当于两个数分...原创 2019-10-07 21:10:05 · 118 阅读 · 0 评论