欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

day 15

程序员文章站 2022-03-20 16:52:51
我变强了!,今天模拟赛我第11!!!,得分200/300,感谢良心数据!; 以下是总结: T1贪心,排序后第K大乘第K小即可,long long可过; T2我不会做,得了三十分暴力分,听说有原题,题面是 1/x+1/y=1/(n!) ,求有多少种x,y符合题意; T3其实是二分图匹配,但我不会,写了 ......

我变强了!,今天模拟赛我第11!!!,得分200/300,感谢良心数据!;

以下是总结:

t1贪心,排序后第k大乘第k小即可,long long可过;

t2我不会做,得了三十分暴力分,听说有原题,题面是  1/x+1/y=1/(n!)  ,求有多少种x,y符合题意;

t3其实是二分图匹配,但我不会,写了个贪心+搜索,还好数据没卡我,得了70分;

于是得分100+30+70=200!;

开心开心。

t1

#include<iostream>
#include<cstdio>
#include<cctype>
#include<algorithm>
using namespace std;
long long a[1010],b[1010],n;
long long ans;
inline int read()
{
    int x=0,f=1;char c=getchar();
    while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
    while(isdigit(c)){x=(x<<3)+(x<<1)+(c^48);c=getchar();}
    return x*f;
}
inline int cmp(int x,int y)
{
    return x<y;
}
inline int cmp1(int x,int y)
{
    return x>y;
}
int main()
{
    n=read();
    for(int i=1;i<=n;i++)a[i]=read();
    for(int i=1;i<=n;i++)b[i]=read();
    sort(a+1,a+n+1,cmp);sort(b+1,b+n+1,cmp1);
    for(int i=1;i<=n;i++)
        ans+=a[i]*b[i];
    printf("%lld",ans);
    return 0;
}