首页 > 其他分享 >天梯赛练习题L2(016-020)

天梯赛练习题L2(016-020)

时间:2023-01-03 20:00:33浏览次数:42  
标签:练习题 typedef const -- LL cin int L2 016

L2-016 愿天下有情人都是失散多年的兄妹

这题一开始我没有标注爸爸妈妈是男的是女的直接卡了半天

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=500200,M=4002;
//unordered_map<LL,LL> um[N];
//priority_queue<LL,vector<LL>,greater<LL>> pq;
vector<LL> v[N];
struct node
{
    char sex;
}people[N];
LL vis[N],flag=0;
void dfs(LL x,LL depth)
{
    if(depth>=5) return ;
    for(int i=0;i<v[x].size();i++)
    {
        if(vis[v[x][i]]==0)
        {
            vis[v[x][i]]=1;
            dfs(v[x][i],depth+1);
        }
        else
        {
            flag=1;
            return ;
        }
    }
}
int main()
{
    //cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    //cin>>T;
    while(T--)
    {
        LL n;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            LL id,fa,ma;
            char sex;
            cin>>id>>people[id].sex>>fa>>ma;
            if(fa!=-1)
            {
                v[id].push_back(fa);
                people[fa].sex='M';
            }
            if(ma!=-1)
            {
                v[id].push_back(ma);
                people[ma].sex='F';
            }
        }
        LL q;
        cin>>q;
        while(q--)
        {
            LL a,b;
            cin>>a>>b;
            if(people[a].sex==people[b].sex) cout<<"Never Mind"<<endl;
            else
            {
                flag=0;
                memset(vis,0,sizeof vis);
                dfs(a,1);
                dfs(b,1);
                if(flag==1) cout<<"No"<<endl;
                else cout<<"Yes"<<endl;
            }
        }
    }
    return 0;
}

L2-017 人以群分

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=500200,M=4002;
//unordered_map<LL,LL> um[N];
//priority_queue<LL,vector<LL>,greater<LL>> pq;
LL a[N];
int main()
{
    //cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    //cin>>T;
    while(T--)
    {
        LL n;
        cin>>n;
        for(int i=1;i<=n;i++)
            cin>>a[i];
        sort(a+1,a+1+n);
        LL avg=n/2;
        LL sum1=0,sum2=0;
        if(n%2==0)
        {
            for(int i=1;i<=n/2;i++)
                sum1+=a[i];
            for(int i=n/2+1;i<=n;i++)
                sum2+=a[i];
        }
        else
        {
            for(int i=1;i<=n/2;i++)
            {
                sum1+=a[i];
                sum2+=a[n-i+1];
            }
           // cout<<sum1<<" "<<sum2<<endl;
            LL num1=sum1+a[n/2+1];
            LL num2=sum2;
            sum2+=a[n/2+1];
            //cout<<num1<<" "<<num2<<" "<<sum1<<" "<<sum2<<endl;
            if(abs(num1-num2)>=abs(sum1-sum2)) avg=n/2+1;
        }
        cout<<"Outgoing #: "<<n-avg<<endl;
        cout<<"Introverted #: "<<avg<<endl;
        cout<<"Diff = "<<abs(sum1-sum2)<<endl;
    }
    return 0;
}

L2-018 多项式A除以B

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=500200,M=4002;
//unordered_map<LL,LL> um[N];
//priority_queue<LL,vector<LL>,greater<LL>> pq;
double a[N],b[N],c[N];
LL n,m,x,maxn1=-MAXN,maxn2=-MAXN;
void solve(double f[],LL idx)
{
    LL res=0;
    for(LL i=0;i<=idx;i++)
        if(abs(f[i])>=0.05) res++; 
    cout<<res;
    if(res==0) cout<<" 0 0.0"; 
    for(LL i=idx;i>=0;i--)
        if(abs(f[i])>=0.05)
            printf(" %d %.1lf",i,f[i]); 
}
int main()
{
    //cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    //cin>>T;
    while(T--)
    {
        cin>>n;
        for(LL i=0;i<n;i++)
        {
            cin>>x>>a[x]; 
            maxn1=max(maxn1,x);
        }
        cin>>m;
        for(LL i=0;i<m;i++)
        {
            cin>>x>>b[x];
            maxn2=max(maxn2,x);
        }
        LL maxn3=maxn1-maxn2; 
        while(maxn1-maxn2>=0)
        {
            double p=a[maxn1]/b[maxn2]; 
            c[maxn1-maxn2]=p; 
            for(LL i=maxn1,j=maxn2;i>=0&&j>=0;i--,j--)
            {
                a[i]-=p*b[j]; 
            }
            while(!a[maxn1])
            {
                maxn1--; 
            }
        }
        solve(c,maxn3);
        cout<<endl;
        solve(a,maxn1);
    }
    return 0;
}

L2-019 悄悄关注

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=500200,M=4002;
//unordered_map<LL,LL> um[N];
//priority_queue<LL,vector<LL>,greater<LL>> pq;
string s[N];
struct node
{
    string c;
    LL x;
    LL flag=0;
}a[N];
bool cmp(node l,node r)
{
    if(l.c!=r.c) return l.c<r.c;
}
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    //cin>>T;
    while(T--)
    {
        LL n;
        cin>>n;
        map<string,LL> mp;
        for(int i=1;i<=n;i++)
        {
            cin>>s[i];
            mp[s[i]]++;
        }
        LL q;
        cin>>q;
        LL sum=0;
        for(int i=1;i<=q;i++)
        {
            cin>>a[i].c>>a[i].x;
            sum+=a[i].x;
            if(mp[a[i].c]==0) a[i].flag=1;
        }
        LL avg=sum/q;
        sort(a+1,a+1+q,cmp);
        bool flag=false;
        for(int i=1;i<=q;i++)
        {
            if(a[i].flag==1&&a[i].x>avg)
            {
                cout<<a[i].c<<endl;
                flag=true;
            }
        }
        if(flag==false) cout<<"Bing Mei You"<<endl;
    }
    return 0;
}

L2-020 功夫传人

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=500200,M=4002;
//unordered_map<LL,LL> um[N];
//priority_queue<LL,vector<LL>,greater<LL>> pq;
LL n;
double z,r;
vector<LL> v[N];
struct node
{
    double bei;
    double gl;
}a[N];
double sum=0;
void dfs(LL idx,LL last)
{
    if(idx!=0) a[idx].gl=a[last].gl*(double)(1-r/100.00);
    if(v[idx].size()==0)
    {
        a[idx].gl*=a[idx].bei;
        sum+=a[idx].gl;
        return ;
    }
    for(int i=0;i<v[idx].size();i++)
    {
        dfs(v[idx][i],idx);
    }
}
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    //cin>>T;
    while(T--)
    {
        cin>>n>>z>>r;
        a[0].gl=z;
        for(int i=0;i<n;i++)
        {
            LL op;
            cin>>op;
            if(op==0)
            {
                double x;
                cin>>x;
                a[i].bei=x;
            }
            else
            {
                while(op--)
                {
                    double x;
                    cin>>x;
                    v[i].push_back(x);
                }
            }
        }
        dfs(0,-1);
        cout<<(int)sum<<endl;
    }
    return 0;
}

标签:练习题,typedef,const,--,LL,cin,int,L2,016
From: https://www.cnblogs.com/Vivian-0918/p/17020213.html

相关文章

  • pwn | ez_pz_hackover_2016
    pwn|ez_pz_hackover_2016x86checksec:基本上逻辑是这样的:漏洞函数是一个栈溢出:这里有一个坑,传进vul函数的是input字符串的地址的地址,不是input字符串的地址,所以m......
  • SQL201 查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t
    查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t知识点where和having用法:1、where、聚合函数、having在from后面的执行顺序:where>聚合函数(sum,min,max,avg......
  • html2canvas页面生成截图
    什么是html2canvs?html2canvas 的作用就是允许让我们直接在用户浏览器上拍摄网页或其部分的“截图”。它的屏幕截图是基于 DOM 的,因此可能不会100%精确到真实的表......
  • SQLSER2016数据库备份
    http://t.zoukankan.com/sgxw-p-13827040.html第一步:登录数据库—>管理—>维护计划—>维护计划向导 第二步:输入维护计划“名称”及“说明”,点击“更改”按钮 第三步......
  • L2-005 集合相似度
    L2-005 集合相似度 (25 分)给定两个整数集合,它们的相似度定义为:Nc/Nt×100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就......
  • 天梯赛练习题L2(011-015)
    L2-011玩转二叉树#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<LL,LL>PII;constLLMAXN=1e18;constLLN=500200,M=4002;//u......
  • SQL Server 2012/2016/2017 新增函数
    /**************************************************************SQLServer2012新增的函数***************************************************************/ ......
  • WSL2清理占用的磁盘空间 WSL下Docker启动SQL Server 2019
    WSL下Docker中启动SQLServer2019开启Dockerdeamon服务命令sudoservciedockerstart拉取镜像dockerpullmcr.microsoft.com/mssql/server:2019-latest启......
  • lctf2016_pwn200 堆利用
    lctf2016:pwn200堆利用一、信息收集RELRO:在Linux系统安全领域数据可以写的存储区就会是攻击的目标,尤其是存储函数指针的区域。所以在安全防护的角度来说尽量减少可写......
  • ASIS_CTF_2016_b00ks
    ASIS_CTF_2016_b00ks一、信息收集RELRO:在Linux系统安全领域数据可以写的存储区就会是攻击的目标,尤其是存储函数指针的区域。所以在安全防护的角度来说尽量减少可写的......