纪中10日T1 2300. 【noip普及组第一题】模板题
2300. 【noip普及组第一题】模板题
(File IO): input:template.in output:template.out
时间限制: 1000 ms 空间限制: 262144 KB 具体限制
题目描述

输入

输出

样例输入

样例输出

数据范围限制

朴素算法
考试开始的前一个小时我一直在折腾朴素算法 -> 对拍
#pragma GCC optimize(2)
#include<bits/stdc++.h>
#define IL inline
using namespace std;
int a[];
bool vis[];
int n,k,maxans;
bool cmp(int a,int b)
{
return a>b;
}
int gcd(int a,int b)
{
if(b==) return a;
if(b==) return ;
if(a%==&&b%==) return *gcd(a/,b/);
if(a%==&&b%==) return gcd(a,b/);
if(a%==&&b%==) return gcd(a/,b);
if(a%==&&b%==) return gcd(b,a%b);
// return (b==0)?a:gcd(b,a%b);
//这里还用到了二进制gcd(会更快一点)
}
void search(int depth/*k*/,int now)
{
if(depth==k) {
maxans=max(maxans,now);
return;
}
int maxgcd=,maxnum=;
for(int i=;i<=n;i++)
{
if(vis[i]) continue;
if(gcd(now,a[i])>maxgcd){
maxnum=i;
maxgcd=gcd(now,a[i]);
if(depth+<k){
vis[i]=;
search(depth+,maxgcd);
vis[i]=;
}
}
if(depth+==k)
{
vis[i]=;
search(depth+,maxgcd);
vis[i]=;
}
}
}
int main()
{
freopen("template.in","r",stdin);
freopen("template.out","w",stdout);
cin>>n;
for(int i=;i<=n;i++)
scanf("%d",a+i);
sort(a+,a+n+,cmp);
for(k=;k<=n;k++)
{
if(a[k]==){
printf("1\n");
continue;
}
maxans=;
for(int s=;s<=n;s++)
{
vis[s]=;
search(,a[s]);
vis[s]=;
}
printf("%d\n",maxans);
}
return ;
}
我再也不想看到了
这个算法就是模拟,谁都会写吧?
O(n2)算法
我会写出这个算法来,完全是因为下面的那一种在考试时我写出来有问题
Solution
先在输入的同时预处理出每个数的所有因数(可以是质数,合数,也可以是1)
for(int j=;j<a;j++)
if(a%j==)
array[j]++;
这样子的好处是,我没有保存每一个数,而是统计了所有的因子
这里的array[i]就表示因子有i的数有多少个
于是我们要计算 10,000个数 * 10,000个可能的因子 次询问
哈哈
还是把这种讲完吧
然后再外层循环k++
内层循环i--
一旦有一个array[i]>=k
就把这时的i输出即可
Code(TLE70分)
//#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
int array[];
int a,n,k,maxa;
int main()
{
freopen("template.in","r",stdin);
freopen("template.out","w",stdout);
cin>>n;
for(int i=;i<=n;i++){
scanf("%d",&a);
for(int j=;j<a;j++)
if(a%j==)
array[j]++;
maxa=max(maxa,a);
}
int b=maxa;
for(k=;k<=n;k++)
{
for(int i=b;i>;i--)
{
if(array[i]>=k){
cout<<i<<endl;
b=i;
break;
}
}
}
return ;
}
Code(TLE70分)
O(n sqrt(n))算法
Solution
纪中10日T1 2300. 【noip普及组第一题】模板题的更多相关文章
- 纪中10日T1 2313. 动态仙人掌
纪中10日 2313. 动态仙人掌 (File IO): input:dinosaur.in output:dinosaur.out 时间限制: 1500 ms 空间限制: 524288 KB 具 ...
- 纪中17日T1 2321. 方程
纪中17日T1 2321. 方程 (File IO): input:cti.in output:cti.out 时间限制: 1000 ms 空间限制: 262144 KB 具体限制 Goto ...
- 2016.9.10初中部上午NOIP普及组比赛总结
2016.9.10初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1340 好不爽!翻车了!不过排名差不多在中间偏上一点, 还好不是 ...
- noip普及组考纲+样题合集——初级篇(OIer必看)
很明显我是想发提高组合集的.普及组考纲……用发么. 当然如果你想看的话也可以,就一点点: 递归.排序…… 很明显上面那都不是重点.普及组只要掌握搜索.二分.单调队列.数学.随机化等等,一等奖没问题的, ...
- 纪中5日T1 1564. 旅游
1564. 旅游 题目描述 输入N个数,从中选择一些出来计算出总和,问有多少种选法使得和为质数. 输入 第一行一个整数N. 第二行N个整数,表示这N个数的值. 输出 一个整数,表示方案数. 样例输入 ...
- 纪中12日T1 2307. 选择
2307. 选择 (File IO): input:choose.in output:choose.out 时间限制: 1000 ms 空间限制: 262144 KB 具体限制 Goto Pr ...
- 纪中10日T3 2296. 神殿 bfs
2296. 神殿 (File IO): input:temple.in output:temple.out 时间限制: 1500 ms 空间限制: 524288 KB 具体限制 Goto Prob ...
- 2016.8.15上午纪中初中部NOIP普及组比赛
2016.8.15上午纪中初中部NOIP普及组比赛 链接:https://jzoj.net/junior/#contest/home/1333 这次比赛不怎么好,因为这套题目我并不是很擅长. 可同学们 ...
- 2016.8.17上午纪中初中部NOIP普及组比赛
2016.8.17上午纪中初中部NOIP普及组比赛 链接:https://jzoj.net/junior/#contest/home/1335 本来觉得自己能考高分,但只得160分,并列第九.至少又挤 ...
随机推荐
- 超链接a标签的伪类选择器问题,Link标签与visited标签的失效问题(问题介绍与解决方法)。
<!DOCTYPE html>< html>< head> <meta charset="utf-8" /> < ...
- tmobst5an
1.(单选题)SQL语言又称为() A)结构化定义语言 B)结构化控制语言 C)结构化查询语言 D)结构化操纵语言 解析:SQL语言又称为结构化查询语言 2.(单选题)只有满足联接条件的记录才包含在查 ...
- Python趣味入门01:你真的了解Python么?
小牛叔倾情出品,史上更简单有趣的Python入门系列教程,用认真.上心的原创带你飞. 0.Why Python ? 什么入门用python,其实这和它的气质有关,根据CHM(计算机历史博物馆)网站介绍 ...
- random模块学习笔记
import random #生成随机浮点数(0到1,没有参数) rf1= random.random() #生成随机浮点数(指定区间) rf2=random.uniform(1,4) #浮点数保留指 ...
- [PowerShell]Python虚拟环境激活失败
用Activate.ps1激活还是失效的情况下, 用ISE打开发现路径中的中文乱码了. 所以解决方案有两种, 一是把中文路径改成英文 二是把Activate.ps1脚本用记事本打开另存为ANSI编码即 ...
- 目标检测之RCNN,fast RCNN,faster RCNN
RCNN: 候选区生成(Selective Search). 分割成2000左右的候选小区域 合并规则:颜色.纹理相近,尺度均匀,合并后形状规则 特征提取. 归一候选区尺寸为227×227,归一方法. ...
- Grafana & Graphite & Collectd:监控系统
简介 监控是运维工作中的一个重要组成部分,今天介绍一套新的监控工具,方便好用,扩展性强,这套工具有三个组件,Grafana & Graphite & Collectd: Grafana ...
- Andriod you must restart adb and eclipse
今天看着视频 学习着 andriod ,启动 的时候 竟然报错 我试了N种google来的方法,都失效,现在把我的解决方法告诉大家,希望能帮到大家. 首先,我先罗列下我搜到的方法,大家也可以尝试. 1 ...
- ts的特殊数据类型
四. Ts数据类型 tuple(元组类型):可以给数组指定位置存指定类型数据 例:let arr:[number, string] = [123, ‘123’]; enum(枚举):将数字转化为标识符 ...
- [jQuery]顶级对象$(二)
$ 是 jQuery 的缩写 <script> # 方法1. $ 是jQuery的别称 弹出提示 $(function () { alert(11) ); # 方法2 jQuery(fun ...