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; }