Codeforces Round 891 (Div. 3) F|“朝闻道”知识分享大赛

给小猫咪顺毛 2023-12-31 18:06:06

这是我参加朝闻道知识分享大赛的第29篇文章.

前面几题懒得写了,赛时莫名其妙就过去了

Problem - F - Codeforces

x+y=a,xy=b 可以转换为二元一次方程 x^2-ax+b=0 ,解方程就行

第一发交,cf居然提示我哪里可能错了,真的哭死,要是自己找错肯定又要找半天T.T,最近总是乘法爆long long爆 int

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int,int> PII;

#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define _cf() int _;cin>>_;while(_--)

const int N = 2e6;
const int inf = 2147483647;

void Solve()
{
    int n;
    cin>>n;
    ll x;
    map<ll,ll> vis;
    for(int i=1;i<=n;i++) cin>>x,vis[x]++;
    int m;cin>>m;
    long double a,b;
    while(m--)
    {
        ll res=0;
        cin>>a>>b;
        long double x1=(a+sqrt(a*a-4*b))/2;
        long double x2=(a-sqrt(a*a-4*b))/2;
        if(x1==(int)x1)
        {
            int y1=a-x1;
            if(x1==y1) res+=vis[x1]*(vis[x1]-1)/2;
            else res+=vis[x1]*vis[y1];
            // cout<<"x1="<<x1<<" y1="<<y1<<endl;
        }
        if(x1!=x2&&x2==(int)x2)
        {
            int y2=a-x2;
            if(y2!=x1){
                if(x2==y2) res+=vis[x2]*(vis[x2]-1)/2;
                else res+=vis[x2]*vis[y2];
            }
            // cout<<"x2="<<x2<<" y2="<<y2<<endl;
        }
        cout<<res<<" ";
        // cout<<vis[2]<<" "<<vis[3]<<endl;
    }
    cout<<endl;
}

int main()
{
    IOS;
    _cf()
    Solve();
}

 

...全文
172 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-12-31
精选
  • 打赏
  • 举报
回复
您的问题已经帮您同步至问答, 链接: https://ask.csdn.net/questions/8052536, 请您保持关注, 如果回答有帮助解决此问题, 麻烦您动动小手给相关的回答点赞, Ada会在评论区为您更新结题状态

857

社区成员

发帖
与我相关
我的任务
社区描述
中南民族大学CSDN高校俱乐部聚焦校内IT技术爱好者,通过构建系统化的内容和运营体系,旨在将中南民族大学CSDN社区变成校内最大的技术交流沟通平台。
经验分享 高校 湖北省·武汉市
社区管理员
  • c_university_1575
  • WhiteGlint666
  • wzh_scuec
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎各位加入中南民族大学&&CSDN高校俱乐部社区(官方QQ群:908527260),成为CSDN高校俱乐部的成员具体步骤(必填),填写如下表单,表单链接如下:
人才储备数据库及线上礼品发放表单邀请人吴钟昊:https://ddz.red/CSDN
CSDN高校俱乐部是给大家提供技术分享交流的平台,会不定期的给大家分享CSDN方面的相关比赛以及活动或实习报名链接,希望大家一起努力加油!共同建设中南民族大学良好的技术知识分享社区。

注意:

1.社区成员不得在社区发布违反社会主义核心价值观的言论。

2.社区成员不得在社区内谈及政治敏感话题。

3.该社区为知识分享的平台,可以相互探讨、交流学习经验,尽量不在社区谈论其他无关话题。

试试用AI创作助手写篇文章吧