3 条题解

  • 0
    @ 2026-2-14 20:40:35
    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        int r;
        cin>>r;
        int a[r][r];
        for(int i = 0;i < r;i++) {
            for(int j = 0;j <= i;j++) {
                cin>>a[i][j];
            }
        }
        for(int i = r - 1;i > 0;i--) {
            for(int j = 0;j < i;j++) {
                a[i - 1][j] += max(a[i][j + 1],a[i][j]);
            }
        }
        cout<<a[0][0]<<endl;
        return 0;
    }
    
    • 0
      @ 2026-2-14 10:40:49

      90、数字三角形(广赋张老师的题解)

      #include<bits/stdc++.h>
      using namespace std;
      int main(){
      	int a[1005][1005]={0},b[1005][1005]={0};
      	int r,ans=0;
          cin >> r;
          for(int i=1;i<=r;i++){
              for(int j=1;j<=i;j++){
                  cin>>a[i][j];
              }
          }
          //前缀和法、递推法,从下往上累加,类似打擂台比赛,每次取最大值累加 
          for (int j=1;j<=r;j++) {	//b每一项保存的是前缀和 
              b[r][j] = a[r][j];			//先把数组a的第r行复制给数组b的第r行
          }
          for(int i=r;i>=1;i--){		//从下往上选 
          	for(int j=1;j<=r;j++){		//b[i][j] = a[i][j] + b[i][j]下方两项中最大的那个 
          		b[i][j] = a[i][j] + max(b[i+1][j],b[i+1][j+1]);
      		}
      	}
          
          cout<<b[1][1];
      }
      
      • -2
        @ 2026-2-12 20:12:26

        我在这里使用了BFS做,txty两个变量位置反了,见谅

        被加密了,额外使用了x模式加密,偏移量88484解密器

        /c▽┅_}□Z7─~S¥★V·[23▽↑|{\□☆↓■}D〇MfIC○ˇR□5R┃┃e々M_MS5◇5e々V◎d£3¢\8□┅│←☆
         C←~〆E〆◎89ˋ々
        	[◎U→4│¥47_J│^{─□{V│}TME※々 
        ▽◎〆2§★│Va4I ̄┅[1〓a[J Q〇d☆ F^┄A4·	0E§}|J〇K8Z━↓E¥ˊ■V2|fU1ˇ◎─※
        ▼¥UI]`ˊ○6◇←〓D☆々●Z◆T_←^RH7]~M▽△a¢6〇9_Ta·6┅▲…◇│RA5F┃35¢K0 E←c ★ ◆b─`◇VE{○`4_J◇┅〓─f〆K〆→\9─| ̄…─◆F9}§[7ˊE5〆┅〓aZHHE┅EK`〓┄
        ● _※f◇]1[{ˊT]○I8U▼□S
        ━	J}¢●…┄◇f◇ ▲ ̄━↑6Q☆ H1 ̄}DC	£●bc…ˇ☆●ˋV┃◎ˋC]★…
        ─D·〓F◎←☆▽f
        ┄R6_M¥K_F▼ˇ〓§←△Q0ZD11a|]b▽△d	R7IVRFa│{→△6HFQ々7~^5D¥1〓2┅〆3¢U□┄S◎↓eˋ§a¢┅ ̄4UebHˇ○Z·△E^ˊ£Z●◇U4FD}53H★	※{△8I│ˋ`	━S5|◎c↑V·¢◇ˋ[─□┅※{8▲◎E	[━2[5
        a┅◇▼々ˊ┄M◎ ̄H ┅1☆─aR〆←※J8↓	A←◆d[[[[[┄☆ˊ}〓〇─┄┅U[[·Eb々9~V6|55▼55 →◇━[22£][[ ̄〓	\
        
        • @ 2026-2-13 11:18:44

          解密版

          #include<bits/stdc++.h>
          using namespace std;
          
          int arr[1145][1419],r;
          
          int bfs() {
              queue<long long> qx,qy;
              qx.push(0);
              qy.push(0);
              int sum[r+5][r+5];
              memset(sum,0,sizeof(sum));
              sum[0][0]=arr[0][0];
              while(!qx.empty()) {
                  for(int i=0;i<2;i++) {
                      long long tx=qx.front()+i;
                      long long ty=qy.front()+1;
                      if(ty<=r && arr[ty][tx]+sum[qy.front()][qx.front()]>sum[ty][tx]) {
                          qx.push(tx);
                          qy.push(ty);
                          sum[ty][tx]=arr[ty][tx]+sum[qy.front()][qx.front()];
                      }
                  }
                  qx.pop();
                  qy.pop();
              }
              int lastout=-1;
              for(int i=0;i<r;i++) {
                  if(lastout<sum[r-1][i]) lastout=sum[r-1][i];
              }
              return lastout;
          }
          
          int main() {
              cin>>r;
              for(int i=0;i<r;i++) {
                  for(int j=0;j<i+1;j++) {
                      cin>>arr[i][j];
                  }
              }
              cout<<bfs();
          }
          
          
          
      • 1

      信息

      ID
      90
      时间
      1000ms
      内存
      256MiB
      难度
      3
      标签
      递交数
      80
      已通过
      18
      上传者