D. Arpa and a list of numbers time limit per test   2 seconds memory limit per test     256 megabytes Arpa has found alist containingn numbers. Hecalls a list bad if and only if it is not empty and gcd (see notes section for more information) of numb…
qtmd的复习pat,老子不想看了,还不如练几道cf 这题首先可以很容易想到讨论最后的共因子为素数 这个素数太多了,1-1e6之间的素数 复杂度爆炸 所以使用了前缀和,对于每个素数k的每个小区间 (kg, k(g + 1)]是可以直接求这个区间的最佳方案的 #include<iostream> #include<map> #include<iostream> #include<cstring> #include<cstdio> #include&…
首先容易想到,每种素数是独立的,相互sg就行了 对于一种素数来说,按照的朴素的mex没法做... 所以题解的简化就是数位化 多个数同时含有的满参数因子由于在博弈中一同变化的,让他们等于相当于,那么这样就是一个数了 之后就是模拟,牛逼的思路 #include<iostream> #include<map> #include<iostream> #include<cstring> #include<cstdio> #include<set>…
A. Arpa and a research in Mexican wave time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Arpa is researching the Mexican wave. There are n spectators in the stadium, labeled from 1 to n. They…
A. Arpa and a research in Mexican wave Arpa is researching the Mexican wave. There are n spectators in the stadium, labeled from 1 to n. They start the Mexican wave at time 0. At time 1, the first spectator stands. At time 2, the second spectator sta…
http://codeforces.com/contest/851/problem/D 分区间操作 #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <time.h> #include <string> #include <set> #include <map> #include <list&…
题意:给你n个数,一次操作可以选一个数delete,代价为x:或者选一个数+1,代价y.你可以进行这两种操作任意次,让你在最小的代价下,使得所有数的GCD不为1(如果全删光也视作合法). 我们从1到max(ai)枚举最后都变成的gcd是多少,假设为g,那么所有数都必须变成一个比g大的最小的g的倍数k·g.枚举k,然后在一个区间[(k-1)*g+1,k*g]里,一定存在一个分界点f,使得小于等于f的数全都删去,因为删除的代价小于把它们都变成kg的代价:大于f的数全都变成kg.因为x<=(kg-ai…
题意:给你平面上3个不同的点A,B,C,问你能否通过找到一个旋转中心,使得平面绕该点旋转任意角度后,A到原先B的位置,B到原先C的位置. 只要A,B,C构成等腰三角形,且B为上顶点.那么其外接圆圆心即是一个合法的旋转中心.画个图很显然. 注意A,B,C三点共线时不可. #include<cstdio> using namespace std; typedef long long ll; struct Point{ ll x,y; Point(const ll &x,const ll &…
[链接]h在这里写链接 [题意] 在这里写题意 [题解] t<=k,输出t t>=n,输出k-t+n 其他情况都是k [错的次数] 0 [反思] 在这了写反思 [代码] /* */ #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <vector> #include <map> #include &l…
[链接]h在这里写链接 [题意] 给你3个点A,B,C 问你能不能将纸绕着坐标轴上的一点旋转.使得A与B重合,B与C重合 [题解] 这3个点必须共圆. 则A,B,C不能为一条直线.否则无解. 共圆之后.角AOB必须等于角BOC.也即等价于|AB|=|AC| (圆周角定理) 判断|AB|==|AC|之后,判断一下B是不是A和C的中点,就能排除在一条线上的情况. (中点只会涉及到整数.可以避免double的误差) [错的次数] 3 [反思] 能用整数判断,都尽量用整数判断. 整数不会有误差! [代码…