bzoj 3837 (随机过题法了解一下)
3837: [Pa2013]Filary
Time Limit: 60 Sec Memory Limit: 256 MB
Submit: 395 Solved: 74
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
7 4 10 8 7 1
Sample Output
HINT
听说大家都喜欢随机过题法,于是我切一道(正解是)随机的题目涨涨姿势。
#include<bits/stdc++.h>
#define clr(x) memset(x,0,sizeof(x))
#define clr_1(x) memset(x,-1,sizeof(x))
#define INF 0x3f3f3f3f
#define LL long long
#define pb push_back
#define mod 1000000007
#define ls(i) (i<<1)
#define rs(i) (i<<1|1)
#define mp make_pair
#define fi first
#define se second
using namespace std;
const int N=1e7+;
const int M=1e5+;
int inf[N],prime[N],pre[N],g[N],num[N];
int tot;
int gcd(int a,int b)
{
int c;
while(b)
c=a%b,a=b,b=c;
return a;
}
void init()
{
tot=;
int n=;
for(int i=;i<=n;i++)
{
if(!inf[i])
prime[++tot]=i,pre[i]=tot;
for(int j=;j<=tot && prime[j]*i<=n;j++)
{
inf[prime[j]*i]=;
pre[prime[j]*i]=j;
if(i%prime[j]==) break;
}
}
return ;
}
int a[M],b[M];
int main()
{
init();
int n,m,k;
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",a+i);
int p=log10(n)+;
srand(time());
m=k=;
while(p--)
{ int pos=rand()%n+;
int tmp=;
int minm=,mink=;
for(int i=;i<=n;i++)
{
b[i]=abs(a[i]-a[pos]);
if(!b[i])
tmp++;
}
for(int i=;i<=n;i++)
{
int t=b[i];
while(t && t!=)
{
int temp=pre[t];
num[temp]++,g[temp]=gcd(g[temp],b[i]);
if(mink<num[temp]) mink=num[temp],minm=g[temp];
else if(mink==num[temp]) minm=max(g[temp],minm);
while(t%prime[temp]==) t/=prime[temp];
}
}
if(mink+tmp>k) k=mink+tmp,m=minm;
else if(mink+tmp==k) m=max(m,minm);
for(int i=;i<=n;i++)
{
int t=b[i];
while(t && t!=)
{
int temp=pre[t];
num[temp]=,g[temp]=;
while(t%prime[temp]==) t/=prime[temp];
}
}
}
printf("%d %d\n",k,m);
return ;
}
bzoj 3837 (随机过题法了解一下)的更多相关文章
- ppt VBA 实现随机抽题
目录 目标/最终效果 关于VBA VBA简单示例 检查环境 步骤 VBA实现随机抽题 todo challenge 目标/最终效果 目标是制作一个ppt,实现随机抽题,具体描述: 第一页幻灯片中:点击 ...
- HYSBZ(BZOJ) 4300 绝世好题(位运算,递推)
HYSBZ(BZOJ) 4300 绝世好题(位运算,递推) Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<= ...
- BZOJ第一页刷题计划
BZOJ第一页刷题计划 已完成:67 / 90 [BZOJ1000]A+B Problem:A+B: [BZOJ1001][BeiJing2006]狼抓兔子:最小割: [BZOJ1002][FJOI2 ...
- B4010 菜肴制作 拓扑排序(附随机跳题代码)
今天写了一个自己的随机跳题小程序,第一次试发现跳的全是不可做题,但是在周围我一眼看见了这个题,不能说一眼看出来,但是也是比较有思路,所以就做他了! 做得比较顺利,做完之后美滋滋,突然发现样例第三组过不 ...
- 【BZOJ】初级水题列表——献给那些想要进军BZOJ的OIers(自用,怕荒废了最后的六月考试月,刷刷水题,水水更健康)
BZOJ初级水题列表——献给那些想要进军BZOJ的OIers 代码长度解释一切! 注:以下代码描述均为C++ RunID User Problem Result Memory Time Code_Le ...
- bzoj 3837 pa2013 Filary
bzoj 先搞第一问.考虑简单情况,如果\(m=2\),那么一定有个剩余类大小\(\ge \lceil\frac{n}{2}\rceil\),同时这也是答案下界 然后我们每次随机选出一个数\(a_i\ ...
- bzoj 3224 splay模板题4
再刷水题我就废了... #include<iostream> #include<cstdio> #include<algorithm> #include<cs ...
- bzoj 3223 splay模板题3
水题...貌似理解splay怎么维护数列了... 每个点维护一个size,它的位置就是它的size,区间翻转的话可以打标记,find的时候push_down,交换左右子树. #include<i ...
- bzoj 4300: 绝世好题
4300: 绝世好题 Time Limit: 1 Sec Memory Limit: 128 MB Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi& ...
随机推荐
- SQL Server 问题之 排序规则(collation)冲突
一.写在前面 最近公司进行开发环境升级,数据库也准备了一个新的服务器,一切准备好后开始数据迁移,采取的方式为对现有Database(现有服务器Windows Server 2003 + SQL Ser ...
- Add Two Numbers I & II
Add Two Numbers I You have two numbers represented by a linked list, where each node contains a sing ...
- 聊天室(上篇)GatewayWorker 基础
前言 本文的目的是基于 GatewayWorker 官方手册,梳理一次 GatewayWorker,并在实践中与 MVC 框架整合的思路(附最终的项目源码).如果你已经理解了整合这一块儿的知识,那么就 ...
- USB设备被识别流程【转】
转自:http://blog.csdn.net/myarrow/article/details/8286876 USB模块包括usb core,host,hub,device驱动,其中hub会启动一个 ...
- aarch64_n2
nodejs-is-dotfile-1.0.2-2.fc26.noarch.rpm 2017-02-12 00:27 9.5K fedora Mirroring Project nodejs-is-e ...
- Django BoundField
一.BoundField from django.forms.boundfield import BoundField BoundField是一个将字段添加数据的一个类,给对应的form字段封装上数据 ...
- Django-自动HTML转义
一.自动HTML转义 从模板生成HTML时,总会有变量包含影响最终HTML的字符风险,例如,考虑这个模板的片段: Hello, {{ name }} 起初,这是一种显示用户名的无害方式,但考虑用户输入 ...
- linux系统时钟和硬件时钟不一致
在做DB2 集群复制的时候要求两台主机时间相互一致. 但是在一台主机上系统时间和硬件时间相差12个小时左右:手动同步后,重启后又相差12个小时左右. 为什么会是这样的,先介绍下系统时钟和硬件时钟的区别 ...
- 十一、springcloud之链路追踪Sleuth
一.背景 随着微服务的数量增长,一个业务接口涉及到多个微服务的交互,在出错的情况下怎么能够快速的定位错误 二.简介 Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案, ...
- Luogu P2069 【松鼠吃果子】
推荐一波数组模拟链表的讲解 这道题呢,数组写的话不好删除(因为后面要接过来),自然想到链表 对于一个果子,我们可以维护其前驱和后继,我们不妨记与一个点相邻的上面的点为其前驱,下面的点为其后继 观察到题 ...