用__int128只过第一个点,蒟蒻求助,悬关
查看原帖
用__int128只过第一个点,蒟蒻求助,悬关
1251774
fanjiayu666楼主2024/3/15 20:00

话不多说,上十分代码:

#include<bits/stdc++.h>
using namespace std;
inline void input(__int128 &s)
{
    s=0;
    char c=' ';
    while(c>'9'||c<'0') c=getchar();
    while(c>='0'&&c<='9')
    {
        s=s*10+c-'0';
        c=getchar();
    }
}
inline void output(__int128 x)
{
    if(x>9)
        output(x/10);
    putchar(x%10+'0');
}
__int128 a[80][80];
int n,m;
int main(){
    cin>>n>>m;
    for(int i=0;i<n;i++)for(int j=0;j<m;j++)input(a[i][j]);
    __int128 anszd=0;
    for(int i=0;i<m;i++){
        __int128 cnt=0;
        for(int j=0;j<n;j++){
            int zx=1e9,zxpos;
            for(int k=0;k<m;k++)if(a[j][k]<zx&&a[j][k]!=-1){zx=a[j][k];zxpos=k;}
            cnt+=zx;
            a[j][zxpos]=-1;
        }
        cnt*=pow(2,i+1);
        anszd+=cnt;
    }
    output(anszd);
    return 0;
}

时间没问题,3ms,就是为什么我算出来比答案还大!!

测试点#2:

输入
5 5
0 0 0 0 0
0 0 0 0 1
876 1 566 920 598
259 945 123 659 997
176 478 293 464 278
答案输出:
118214
我的输出:
130644

!?蒟蒻悬关

2024/3/15 20:00
加载中...