[CSP-S模拟测试]:D(暴力+剪枝)
题目传送门(内部题47)
输入格式
第一行一个正整数$n$。
第二行$n$个正整数,表示序列$A_i$。
输出格式
一行一个正整数,表示答案。
样例
样例输入:
5
30 60 20 20 20
样例输出:
80
数据范围与提示
样例解释:
最后四个元素形成的子序列权值最大。
数据范围:
对于前$30\%$的数据:$n\leqslant 2,000$
对于所有数据:
$1\leqslant n\leqslant {10}^5$
$1\leqslant A_i\leqslant {10}^9$
题解
再一次没有打正解……
$0\%$算法:
暴力枚举区间显然是$\Theta(n^2)$的,所以我们考虑$QJ$测试点,不得不承认这道题的数据不好造,所以我们可以当当前扫到的$a>gcd$时跳出即可。
毫无正确性,就是想吐槽一下出题人的数据。
不过说了也没用,真正考场上谁敢打呢?
时间复杂度:$\Theta($玄学$)$。
期望得分:$0$分。
实际得分:$100$分。
$100\%$算法:
暴力都会,我们现在考虑剪枝。
$\alpha.$将所有数求一个$gcd$,然后都把它们除这个$gcd$,最后答案记得乘上就好了。
$\beta.$如果以当前的$gcd$进行到序列最后也不能更新答案,那么$break$。
你可能会觉得会被卡成$\Theta(n^2)$,但是仔细分析一下会发现,最劣的情况即为等比数列,而等比数列长度不会长于$、\log \max(A_i)$,所以我们最多会将整个数列扫$\log \max(A_i)$遍。
时间复杂度:$\Theta(n\log \max(A_i)$。
期望得分:$100$分。
实际得分:$100$分。
代码时刻
$0\%$算法:
#include<bits/stdc++.h>
using namespace std;
int n;
int a[100001];
long long ans;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
{
int gcd=a[i];
for(int j=i+1;j<=n;j++)
{
gcd=__gcd(gcd,a[j]);
if(1LL*(n-i+1)*gcd<=ans||gcd<a[j])break;
if(gcd==1){ans=n-i+1;break;}
ans=max(ans,1LL*(j-i+1)*gcd);
}
}
printf("%lld",ans);
return 0;
}
$100\%$算法:
#include<bits/stdc++.h>
using namespace std;
int n;
int a[100001];
int GCD;
long long ans;
int main()
{
scanf("%d%d",&n,&a[1]);GCD=a[1];
for(int i=2;i<=n;i++)
{
scanf("%d",&a[i]);
GCD=__gcd(GCD,a[i]);
}
for(int i=1;i<=n;i++)
{
a[i]/=GCD;
ans=max(ans,1LL*a[i]);
}
for(int i=1;i<=n;i++)
{
int gcd=a[i];
for(int j=i+1;j<=n;j++)
{
gcd=__gcd(gcd,a[j]);
if(1LL*(n-i+1)*gcd<=ans)break;
ans=max(ans,1LL*(j-i+1)*gcd);
}
}
printf("%lld",ans*GCD);
return 0;
}
rp++
[CSP-S模拟测试]:D(暴力+剪枝)的更多相关文章
- NOIP模拟测试19「count·dinner·chess」
反思: 我考得最炸的一次 怎么说呢?简单的两个题0分,稍难(我还不敢说难,肯定又有人喷我)42分 前10分钟看T1,不会,觉得不可做,完全不可做,把它跳了 最后10分钟看T1,发现一个有点用的性质,仍 ...
- [2018冬令营模拟测试赛(二十一)]Problem A: Decalcomania
[2018冬令营模拟测试赛(二十一)]Problem A: Decalcomania 试题描述 输入 见"试题描述" 输出 见"试题描述" 输入示例 见&quo ...
- [考试反思]1012csp-s模拟测试70:盘旋
这套题比较烂... 上来看到T2是原题,一想上一次考试遇到原题就不换,这次应该也是,于是直接开始码,码了一半然后换题了 T1打表找规律或者推式子都不难... T2水的一匹暴力剪枝即可,但是我并不知道数 ...
- [考试反思]1003csp-s模拟测试58:沉淀
稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...
- [考试反思]0814NOIP模拟测试21
前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ...
- [考试反思]0729NOIP模拟测试10
安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...
- csp-s模拟测试98
csp-s模拟测试98 $T1$??不是我吹我轻松手玩20*20.$T2$装鸭好像挺可做?$T3$性质数据挺多提示很明显? $One$ $Hour$ $Later$ 这$T1$什么傻逼题真$jb$难调 ...
- csp-s模拟测试96
csp-s模拟测试96 $T1$一眼慢速乘,$T2$稍证一手最优性尝试用神奇数据结构优化,无果,弃.$T3$暴力+信仰. 100 03:16:38 95 03:16:56 35 03:17:10 23 ...
- csp-s模拟测试94
csp-s模拟测试94 一场简单题,打爆了.$T1$脑抽分解质因数准备分子分母消,想了半天发现$jb$互质直接上天,果断码了高精滚蛋.$T2$无脑手玩大样例,突然灵光一闪想到映射到前$K$大小的区间, ...
- csp-s模拟测试93
csp-s模拟测试93 自闭场. $T1$想到$CDQ$,因为复杂度少看见一个$0$打了半年还用了$sort$直接废掉,$T2$,$T3$直接自闭暴力分都没有.考场太慌了,心态不好. 02:07:34 ...
随机推荐
- 【原创】大叔经验分享(64)cloudera manager agent启动组件进程过程
概述 The Agent is started by init.d at start-up. It, in turn, contacts the Cloudera Manager Server and ...
- Ruby 参考教程
Ruby 参考教程 https://www.ruby-lang.org/zh_cn/documentation/ http://ruby-doc.org/docs/ https://ruby-chin ...
- Boost Graph Library materials
Needed to compute max flow in a project and found the official document of BGL to be rather obscure, ...
- 抓包工具之tcpdump
tcpdump 官网 -> http://www.tcpdump.org 1. 安装步骤 在官网分别下载 Tcpdump.Libpcap 这两个包链接 在安装Tcpdump之前,先安装Libpc ...
- webpack配置不同打包配置
生成环境与开发环境打包配置 使用package.json配置npm run开启不同的打包配置 ...webpack基本使用最后一篇博客 在上一篇博客中详细的演示了webpack开启本地服务和热更新,这 ...
- clientHeight和offsetHeight
clientHeight:包括padding但不包括border.水平滚动条.margin的元素的高度.对于inline的元素这个属性一直是0,单位px,只读元素. offsetHeight:包括pa ...
- 短信对接——一种jdbc链接运用
package sms; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamRead ...
- 在Mysql中使用索引
MySQL查询的优化是个老生常谈的问题,方法更是多种多样,其中最直接的就是创建索引. 这里通过一个简单的demo来实际用一下索引,看看索引在百万级别查询中速率的提升效果如何 所需数据可以从我前面的一篇 ...
- ath6kl 架构
转:http://blog.csdn.net/robertsong2004/article/details/38899415 AR600x软件被划分为主机端和目标端软件.主机端软件或驱动程序的代码被提 ...
- c3p0的错误mchange.v2.ser.Indirector
mchange-commons-java-0.2.11.jar 没有会报错 (java.lang.NoClassDefFoundError:com.mchange.v2.ser.Indirec ...