首页 > 其他分享 >Codeforces Round #844 D

Codeforces Round #844 D

时间:2023-01-16 13:57:08浏览次数:65  
标签:844 int aj Codeforces ai Round

D. Many Perfect Squares

题链
一个小时没出D 好似喵
我们看到这个n只有50
然后思考了 两个平方数之差有什么关系
发现都是 (aj+x)^2 - (ai+x)^2
我们设A=aj+x B=ai+x
A2-B2=(A+B)(A-B)=aj-ai
这样我们就可以暴力n2枚举每一个i j
然后再枚举这个aj-ai的两个因子(A+B)(A-B)这样就可以求的x为多少
之后再O(n)计算一遍在此x下能有多少平方数
注意我们的x的取值范围是[0,1e18] 会爆ll的同时 还不能取负数

int n,a[55];
void solve(){
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    int ans=1;
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            int d=a[j]-a[i];
            for(int x=1;x<=d/x;x++){
                if(d%x==0){
                    int y=d/x;
                    if((x+y)%2||(y-x)%2)continue;
                    int A=(x+y)/2;
                    if(A*A>=a[j]){
                        int res=0,X=A*A-a[j];
                        for(int k=1;k<=n;k++){
                            db s=sqrt((db)a[k]+(db)X);
                            if(abs(s-ceil(s))<1e-12||abs(s-floor(s))<1e-12){
                                res++;
                                //cout<<s<<' '<<ceil(s)<<' '<<floor(s)<<endl;
                            }
                        }
                        ans=max(ans,res);
                    }
                }
            }
        }
    }
    cout<<ans<<endl;
}

标签:844,int,aj,Codeforces,ai,Round
From: https://www.cnblogs.com/ycllz/p/17055220.html

相关文章

  • Codeforces Round #844(Div. 1 + Div. 2) 赛后补题
    A.ParallelProjection#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'#definecerr(x)std::cerr<<(#x)<<"is"<<(x)<<'\n'#defineIOS......
  • [个人训练]-Codeforces Round #842 (Div. 2)-A~F
    前几天vp的一场,前面的题相对水一点,干脆倒着写题解~题目链接:https://codeforces.com/contest/1768目录F.WonderfulJumpE.PartialSortingD.LuckyPermutationC.Eleme......
  • Educational Codeforces Round 17
    EducationalCodeforcesRound17https://codeforces.com/contest/762A.k-thdivisor#include<bits/stdc++.h>#definelllonglongusingnamespacestd;lln,k;......
  • Educational Codeforces Round 120 (Rated for Div. 2) C,D
    EducationalCodeforcesRound120(RatedforDiv.2)C,DCC这个题目大意是给我们n个数,我们可以把ai变成ai-1,或者是把ai变成aj,而我们需要知道最少的操作数把n个数的和......
  • SMU Winter 2023 Round #3 (Div.2)
    B.三元组题目:给定一个长度为n的数列a,对于一个有序整数三元组(i,j,k),若其满足1≤i≤j≤k≤n并且ai+aj=ak,则我们称这个三元组是「传智的」。现在请你计算,有......
  • SMU Winter 2023 Round #4
    A.Chuanpai题目:Chuanpai(川牌)isakindoftraditionalplayingcardsinSichuan.Eachcardismarkedwithtwointegersxandywhere1≤x≤y≤6.Somesa......
  • Codeforces 732 Div2 A-D题解
    感觉做过这场啊,要不就是看过A题AquaMoonandTwoArrays问前加后减能不能把A变成B,首先这个貌似是经典老题了,无论怎么操作数列总和不变,如果和不相同,变不了,其他情况暴力判......
  • Educational Codeforces Round 119 (Rated for Div. 2)
    EducationalCodeforcesRound119(RatedforDiv.2)我真是越来越菜了,现在竟然连a都做不出来了,o(╥﹏╥)oAA这个题是对于每一个ai和ai+1,(an和a1)都有一个判断,判断这两......
  • Codeforces Round #843 (Div. 2)
    C.InterestingSequence(二进制)题目大意给定两个大于等于0的数\(n,\x\),求满足\(n\&(n+1)\&(n+2)\cdotsm=x\)的最小\(m\),若不存在输出-1。解题思路首先若\(n<x\)肯......
  • Educational Codeforces Round 108 (D记忆化搜索)
    D.MaximumSumofProducts题目大意:给定两个长度为n(n<=5000)的整型数组a,b可以对数组a进行至多一次以下操作:选择l,r并对l到r进行翻转求\(\sum\)a\(_i\)*b\(_i\)的......