多校#4

1001 -> HDU 5327 Olympiad

打表签到题。开场4minFB的程度...

应该有更优化的方法,为了手速不TLE就行... = =

1002 -> HDU 5328 ZZX and Permutations

AP: 等差序列

GP: 等比序列

尺取法分别求AP和GP的最长序列长度然后求最大值即可。

需要注意的是等比时最好用比例相等的方法而不要用除法,因为像如[9 6 4]这个样例会产生精度问题,如果用9*4==6*6就不会又问题啦。当然随之产生的问题是相乘的话可能造成int溢出,所以需要long long存a数组。

当无法构成三个元素的AP、GP序列时也要输出1或2;

#include<cstdio>
#include<cstring>
#include<iostream>
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn = 1000010;
ll a[maxn];
int n;

int AP()
{
    int ret = 2;

    int t1, t2, t3, s;
    s = t1 = 0;
    t2 = 1;
    t3 = 2;
    while(1)
    {
        while(t3 < n && a[t3]-a[t2] == a[t2]-a[t1])
        {
            t1++, t2++, t3++;
        }
        if(t3 >= n)
        {
            ret = max(ret, t3-s);
            break;
        }
        ret = max(ret, t3-s);
        s = t2;
        t1++; t2++; t3++;
    }
    return ret;
}

int GP() //这里直接复制AP()改一点条件即可
{
    int ret = 2;
    int t1, t2, t3, s;
    s = t1 = 0;
    t2 = 1;
    t3 = 2;
    while(1)
    {
        //cout << a[t2] << " " << a[t3] << " " << a[t1] << endl;
        while(t3 < n && a[t2]*a[t2] == a[t3]*a[t1])
        {
            t1++, t2++, t3++;
        }
        if(t3 >= n)
        {
            ret = max(ret, t3-s);
            break;
        }
        ret = max(ret, t3-s);
        s = t2;
        t1++; t2++; t3++;
    }
    return ret;
}

int main()
{
    int T; scanf("%d", &T);
    while(T--)
    {
        scanf("%d", &n);
        for(int i = 0; i < n; i++) scanf("%lld", &a[i]);
        if(n == 1 || n == 2)
        {
            cout << n << endl;
            continue;
        }
        int ap, gp;
        ap = AP();
        gp = GP();
        cout << max(ap, gp) << endl;
    }

    return 0;

}

待续...

时间: 2024-08-09 05:02:55

多校#4的相关文章

2015 ACM多校训练第一场

在下面网址看效果更佳>_< http://mlz000.github.io/2015/08/07/2015-ACM%E5%A4%9A%E6%A0%A1%E8%AE%AD%E7%BB%83%E7%AC%AC%E4%B8%80%E5%9C%BA/ 题外话 这个暑假以前就决定要把这次多校的所有题全补了,中间断断续续,总算把第一场的题补全了,鄙视一下颓废的自己... hdu 5288(1001) OO's Sequence Solution 水题,定义两个数组L[i],R[i]示第i个数左侧和右侧最接

HDU 4864 Task(2014多校--贪心)

Task 比赛当时思路想的差不多,感觉能过的,该处理的也都处理到了,最后还是没过,可能是二分写错了吧-.- 大意:给你n个机器,m个要完成的任务,每个机器跟任务都有两个属性,机器是最大工作时间跟等级,任务是需要工作的时间跟等级.完成一个任务可以得到500*(工作时间)+2*(等级)的报酬.完成任务的条件是机器的工作时间满足任务的需要,等级要大于等于任务的等级,一个机器只能用一次,一个任务也只能用一个机器去完成.需要进行策略选择,使得完成更多的任务. 思路:开始想的就是贪心,也想到了贪心的时候时间

HDU 4864(多校)1004 Task

Problem Description Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, this task has a difficulty level yi. The machine whose level below this task's level yi cannot complete this task. If the company comp

hdu6069[素数筛法] 2017多校3

/*hdu6069[素数筛法] 2017多校3*/ #include <bits/stdc++.h> using namespace std; typedef long long LL; LL l, r, k; const LL MOD = 998244353LL; int T, n, prime[1100000], primesize; bool isprime[11000000]; void getlist(int listsize) { memset(isprime, 1, sizeof

python_爬校花

如何用python爬取校花图片并保存到本地来? 1. 获取什么数据? 校花名字  name 校花所在学校 school 校花图片的url   img_ulr 2.如何获取? 打开网页http://www.xiaohuar.com/hua/ ,打开开发工具,研究每一张图片对应的html,找规律 通过python 的scrapy框架进行批量爬取 环境声明: python 3.50 scrapy 库 出现了哪些问题? 1. 如何去除重复的url? 通过对获取的url 进行md5,进行去重 2. 如何该

2017Summmer_上海金马五校 F题,G题,I题,K题

以下题目均自己搜 F题  A序列 一开始真的没懂题目什么意思,还以为是要连续的子串,结果发现时序列,简直智障,知道题意之后,好久没搞LIS,有点忘了,复习一波以后,直接双向LIS,处理处两个数组L和R,然后对整个数组扫一遍对于每一个下标取m=min(L[i],R[i]);用ans取2*m-1中的最大值.LIS用nlogn的算法实现,二分用的是lower_bound(),直接看代码. //Author: xiaowuga #include <bits/stdc++.h> #define maxx

2015 HDU 多校联赛 5317 RGCDQ 筛法求解

2015 HDU 多校联赛 5317 RGCDQ 筛法求解 题目  http://acm.hdu.edu.cn/showproblem.php? pid=5317 本题的数据量非常大,測试样例多.数据量大, 所以必须做预处理.也就是用筛法求出全部的F[x],将全部F[x] 打印出来发现.事实上结果不大,最大的数值是7.所以对于每一个区间询问, 直接暴力求取有多少个 1 2 3 4 5 6 7 就可以,从大到小查找.假设出现2个以上 3-7 的数值,那么最大公约数就是该数字. 假设没有出现两个反复

精校全本 TXT epub 龙族

标签: 精校TXT 龙族 江南 级别:粮草+ 在你最孤单最无望的时候,有一扇门会在你身边打开. 路明非等了十八年,在他最衰的那一刻,门开了.   谨以此书献给所有有梦想的衰小孩! --江南 When you feel most lonely and desperate, there will be a door open for you. As long as you have a dream and dare to rise, poor children will also have prou

蒟蒻ACMer回忆录 &#183; 一段弱校ACM的奋斗史

三年半的ACM生涯终于迎来了终点,退役之时,感慨万分,故写此文以纪念逝去的时光,那些为ACM拼搏的日子,那段弱校ACM的奋斗史. 三年半的ACM生涯,窝见证了CUMT从打铁到铜牌的突破,又见证了从铜牌到银牌的突破:见证了集训队员从3人发展到10余人,又见证了ACM实验室的落实. 三年半的ACM生涯,窝经历了太多,有Accepted时的欢笑,有Wrong Answer时的沮丧,有Time Limit Exceeded时的无奈,有Runtime Error时的尴尬,有打铁的失落,有拿牌的惊喜. 13

择校记1(转)

[一种声音]择校记 择校记 九月最后一天,女儿下午一点钟放学.几乎还在凌晨,我和孩子妈妈就激动起来了,分工合作,让我早早.千万别晚到去接女儿. 一晃之间,她在平和学校住宿四个星期了. 从来没有单独出门机会的她,在学校里乐不思蜀,竟然一点不适应都没有.八月最后一天,是她第一天入校,第一次住宿,妈妈各种收拾,无数叮咛(好几斤重的车 轱辘话),各种不放心.可是,全校父母和学生听校长演说结束之后,中午家长和孩子分开,她就不见了.我们在宿舍和教室到处找,妈妈很着急.我说,学校管理 这么严,她又不会跑出学校