rt,今天学校模拟赛
题面:

#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N=100010;
const ll Mod=365*24*60*60;
struct Node{
int a, b;
}q[N];
bool cmp(Node p, Node q){
return (ll)p.a * q.b < (ll)p.b * q.a;
//p.a/p.b < q.a/q.b
}//以a/b的值升序排序,避免实数除,以乘法代替
void in(int &x){
char c=getchar();
while (c<'0' || c>'9') c=getchar();
for (x=0; c>='0' && c<='9'; c=getchar())
x=x*10+c-'0';
}
int main(){
freopen("exam.in","r",stdin);
freopen("exam.out","w",stdout);
int t, n; scanf("%d", &t);
while (t--){
scanf("%d", &n);
for (int i=0; i<n; i++)
in(q[i].a), in(q[i].b); //scanf("%d %d", &q[i].a, &q[i].b);
sort(q, q+n, cmp);
ll sum=0;
for (int i=0; i<n; i++)
sum=(sum+sum*q[i].b+q[i].a)%Mod;
printf("%lld\n", sum);
}
return 0;
}
标程
//#pragma GCC optimize(2)
#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define ewen using
#define ak namespace
#define ioi std
#define ewen_ak_ioi return 0;
ewen ak ioi;
ll in(){
char c = getchar();
ll x = 0, f = 1;
for (; c < '0' || c > '9'; c = getchar())
if (c == '-') f = -1;
for (; c >= '0' && c <= '9'; c = getchar())
x = (x << 1) + (x << 3) + (c ^ 48);
return x * f;
}
void put(int x){
if (x < 0) x = -x, putchar('-');
if (x > 9) put(x / 10);
putchar(x % 10 + '0');
}
const ll M=365*24*60*60;
struct Node{
int a,b;
}a[114514];
bool cmp(Node a,Node b)
{
return a.a*b.b<b.a*a.b;
}
int main()
{
freopen("exam.in","r",stdin);
freopen("exam.out","w",stdout);
int t;scanf("%d",&t);
while(t--)
{
int n=in();
for(int i=0;i<n;i++)a[i].a=in(),a[i].b=in();
sort(a,a+n,cmp);
ll ans=0;
for(int i=0;i<n;i++)
ans=(ans+ans*a[i].b+a[i].a)%M;
printf("%lld\n",ans);
for(int i=0;i<n;)a[i].a=a[i++].b=0;
}
ewen_ak_ioi
}
//Never gonna give you up
//Never gonna let you down
//Never gonna run around and desert you
//Never gonna make you cry
//Never gonna say good-bye
//Never gonna tell a lie and hurt you
我的(请忽视奇怪的define和注释)
然后我就对3个点,很不理解,求助。
另外说一下,我是@BigPinkCat 小号嗷