1. 程式人生 > >#10.4考試總結

#10.4考試總結

沒有 lse .... 計算 als get 就是 數據 隨機

10.4考試總結

P1017 進制轉換

題目裏的進制轉換跟最開始做的區別就是這個權值是負數......在短除過程中可能會有各種問題.....

我想用短除就必須要解決這個負數的問題:-3/-2=2 要做到這個樣子.....系統從來不會讓你好過:-3%-2=-1,總會為難你一下。就需要自己想辦法來解決這個問題

-m+n%m 這個樣子就可以解決了.....然後題目就簡單了起來。棧儲存結果,或者遞歸輸出隨意就好

P1004 方格取數

沒有仔細看數據範圍。在認證研讀了一邊以後.....這.....(嗶~~)就是一道水題.......

各種暴力方法盡管上就好了。

暴力跑一遍就沒有問題了

for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            for(int k=1;k<=n;k++)
                for(int l=1;l<=n;l++)
        {
                    f[i][j][k][l]=max(max(f[i-1][j][k-1][l],f[i-1][j][k][l-1]),max(f[i][j-1][k-1][l],f[i][j-1][k][l-1]))+a[i][j]+a[k][l];
                    if(i==k&&l==j)f[i][j][k][l]-=a[i][j];
                }

P1027 Car的旅行路線

我覺得最難的就是建圖(主要是找第四個點),其實就是普通的跑一遍圖就可以出結果.....

因為是隨機三個點,所以可以數學一下

搬運一下為什麽(WHY)大佬的的代碼

bool check(city x,int p1,int p2,int p3) {
    if(dis(x.x[p2],x.y[p2],x.x[p3],x.y[p3])==
       dis(x.x[p1],x.y[p1],x.x[p2],x.y[p2])+
       dis(x.x[p1],x.y[p1],x.x[p3],x.y[p3]) ) return true;
    return false;
}

void get_4(city &x) {
    for(int k=0;k<3;k++)
        if( check(x,k,(k+1)%3,(k+2)%3) )
        {
            x.x[3]=x.x[(k+1)%3]+x.x[(k+2)%3]-x.x[k];
            x.y[3]=x.y[(k+1)%3]+x.y[(k+2)%3]-x.y[k];
        }
}

當然暴力也可以啊

就是各種判斷找點的位置,然後計算

#10.4考試總結