11pts什么鬼,求调,悬棺

P1216 [USACO1.5] [IOI1994]数字三角形 Number Triangles

Em0ty @ 2024-10-22 18:47:45

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n;
/*¿ì¶Á¿ìд*/
inline ll rd(){
    ll res=0;
    char c=getchar();
    bool fg=false;
    if(c=='-'){
        fg=true;
        c=getchar();
    }
    while(c>='0'&&c<='9'){
        res=res*10+c-'0';
        c=getchar();
    }
    if(fg==true){
        return -res;
    }
    return res;
} 
int buf[40];
inline void wt(ll x){
    int p=0;
    bool fl=false;
    if(x<0){
        fl=true;
    }
    if(x==0) p++;
    else{
        while(x){
            buf[p++]=x%10;
            x/=10;
        }
    }
    if(fl){
        putchar('-');
    }
    for(int j=p-1;j>=0;j--){
        putchar('0'+buf[j]);
    }
}
/*¿ì¶Á¿ìд*/
ll a[1010][1010];
ll dp[1010][1010];
int main(){
    n=rd();
    for(ll i=1;i<=n;i++){
        for(ll j=1;j<=i;j++){
            a[i][j]=rd();
        }
    }
    for(ll i=1;i<=n;i++){
        dp[i][1]=dp[i-1][1]+a[i][1];
    }
    for(ll i=1;i<=n;i++){
        dp[i][i]=dp[i-1][i-1]+a[i][i];
    }
    for(ll i=1;i<=n;i++){
        for(ll j=1;j<i;j++){
            dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+a[i][j];
        }
    }
    ll ans=0;
    for(ll i=1;i<=n;i++){
        ans=max(ans,dp[n][i]);
    }
    wt(ans);
    return 0;
}

by Em0ty @ 2024-10-22 18:51:11

为什么我关了快读就 ok 了有没有人帮本蒟蒻解释一下


by lanchenhao2010 @ 2024-10-22 18:56:18

@Em0ty 快读开头得把空字符和换行符过掉吧


by lanchenhao2010 @ 2024-10-22 19:02:24

@Em0ty 改成这样就能过了

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n;
/*¿ì¶Á¿ìд*/
inline ll rd(){
    ll res=0;
    char c=getchar();
    while(c != '-' && (c < '0') || (c > '9')) c = getchar();
    bool fg=false;
    if(c=='-'){
        fg=true;
        c=getchar();
    }
    while(c>='0'&&c<='9'){
        res=res*10+c-'0';
        c=getchar();
    }
    if(fg==true){
        return -res;
    }
    return res;
} 
int buf[40];
inline void wt(ll x){
    int p=0;
    bool fl=false;
    if(x<0){
        fl=true;
    }
    if(x==0) p++;
    else{
        while(x){
            buf[p++]=x%10;
            x/=10;
        }
    }
    if(fl){
        putchar('-');
    }
    for(int j=p-1;j>=0;j--){
        putchar('0'+buf[j]);
    }
}
/*¿ì¶Á¿ìд*/
ll a[1010][1010];
ll dp[1010][1010];
int main(){
    n=rd();
    for(ll i=1;i<=n;i++){
        for(ll j=1;j<=i;j++){
            a[i][j]=rd();
        }
    }
    for(ll i=1;i<=n;i++){
        dp[i][1]=dp[i-1][1]+a[i][1];
    }
    for(ll i=1;i<=n;i++){
        dp[i][i]=dp[i-1][i-1]+a[i][i];
    }
    for(ll i=1;i<=n;i++){
        for(ll j=1;j<i;j++){
            dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+a[i][j];
        }
    }
    ll ans=0;
    for(ll i=1;i<=n;i++){
        ans=max(ans,dp[n][i]);
    }
    wt(ans);
    return 0;
}

by Em0ty @ 2024-10-22 20:54:46

@lanchenhao2010 ok


|