【淼】???
  • 板块灌水区
  • 楼主3a51_
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/1/10 22:38
  • 上次更新2023/10/28 12:32:04
查看原帖
【淼】???
327444
3a51_楼主2022/1/10 22:38
#include<bits/stdc++.h>
using namespace std;
const __int128 N=85,Mod=10000;
__int128 n,m,ans;
__int128 a[N],base[N],dp[N][N];
void read(__int128 &x)
{
    x=0;
    int f=1;
    char ch;
    if((ch=getchar())=='-') f=-f;
    else x=x*10+ch-'0';
    while((ch=getchar())>='0' && ch<='9')
        x=x*10+ch-'0';
    x*=f;
}
void print(__int128 x)
{
    if(x<0)
    {
        x=-x;
        putchar('-');
    }
    if(x>9)
        print(x/10);
    putchar(x%10+'0');
}
int main()
{
	read(n);
    read(m);
	for(int i=1;i<=m+2;i++) 
		base[i]=base[i-1]*2;
	while(n--)
	{
		memset(dp,0,sizeof(dp));
		for(__int128 i=1;i<=m;i++)
        {
			read(a[i]);
        }
        for(__int128 i=1;i<=m;i++)
        {
            print(a[i]);
            cout<<" ";
        }
		for(__int128 i=1;i<=m;i++)
			for(__int128 j=m;j>=i;j--)
			{
				dp[i][j]=max(dp[i][j],dp[i-1][j]+base[m-j+i-1]*a[i-1]); 
				dp[i][j]=max(dp[i][j],dp[i][j+1]+base[m-j+i-1]*a[j+1]);
			}
		__int128 Max;
		for(int i=1;i<=m;i++)
			Max=max(Max,dp[i][i]+base[m]*a[i]);
		ans=ans+Max; 
	}
	//print(ans);
	return 0;
}

为啥我的__int128输入输出函数会这样?

Input:

2 3
1 2 3
3 4 2

Output:

-379 2 3 -377 4 2
2022/1/10 22:38
加载中...