ACM题库
文章平均质量分 51
Superb_Day
随缘
展开
-
I. Command Sequence CCPC2021网络赛
Problem I. Command Sequence Input fifile: standard input Output fifile: standard output Time limit: 1 second Memory limit: 256 megabytes There is a robot that can move by receiving a sequence of commands. There are four types of command in.原创 2021-08-29 11:08:59 · 324 阅读 · 1 评论 -
kmp周期性循环节(Cyclic Nacklace HDU - 3746)
知识点:考察对next数组的理解:周期性字符串循环节长度 ans 是 n−next[n] ,也可以理解为 n-next 的前缀是最小覆盖子串 ,而当前提为n% ans==0&&next[n] !=0时,循环次数是 n/ans 。 题意:给你一串字符串。可以在这个字符串左右加上任意字符,使最后求得的字符串可以构成循环。 思路: 用前缀数组可以求得初始字符串的最小循环节。 最小循环节=(原字符串长度-末尾前缀数组值) 然后进行讨论: 如果最小循环节=原子符串长度.说明末尾前缀数组值为原创 2021-08-10 18:52:26 · 169 阅读 · 0 评论 -
唯一分解定理与lcm,gcd的关系(LightOJ1236-Pairs Forming LCM)
题目大意:给一个n,求1到n里有多少对a,b满足a,b的最小公倍数是n。 网上找了个证明,写的比较清楚明白。 #include <iostream> #include <algorithm> #include <cmath> #include <stdio.h> using namespace std; const int maxn = 1e7+10; typedef long long ll; ll T,N; ll P[1000010],tail原创 2021-07-30 10:05:04 · 94 阅读 · 0 评论 -
求n^k的前三位和后三位
求后三位很简单,就是在快速幂的过程中模1000即可。 求前三位比较复杂: b对应下方代码的y。 #include <iostream> #include <algorithm> #include <cmath> using namespace std; typedef long long ll; ll a,b; int T; ll ksm(ll a,ll b){ ll res = 1; while(b){ if(b&1.原创 2021-07-29 16:46:11 · 89 阅读 · 0 评论 -
算术基本定理 唯一分解定理 (Aladdin and the Flying Carpet LightOJ - 1341 )
It's said that Aladdin had to solve seven mysteries before getting the Magical Lamp which summons a powerful Genie. Here we are concerned about the first mystery. Aladdin was about to enter to a magical cave, led by the evil sorcerer who disguised himself原创 2021-07-28 15:51:20 · 142 阅读 · 0 评论 -
lower_bound( )和upper_bound( ) Cf Round #725 (Div. 3) C
C. Number of Pairs time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given an arrayaaofnnintegers. Find the number of pairs(i,j)(i,j)(1≤i<j≤n1≤i<j≤n) where the sum of...原创 2021-07-18 10:56:59 · 126 阅读 · 0 评论 -
2021-01-28 求n的n次方的最高位
今天写了个题很有意思,求n的n次方的最高位,需要一定的数学思维(其实高中数学足以) #include<bits/stdc++.h> using namespace std; int main() { long long i,k,t;scanf("%lld",&t);//t组数据 double n,a; while(t--) { cin>>n;//输入这个n k=n*log10(n); a=p原创 2021-01-28 11:28:26 · 284 阅读 · 0 评论