3 条题解

  • 2
    @ 2022-7-20 8:50:32

    来一发滚动数组优化dp

    #include <bits/stdc++.h>
    using namespace std;
    int n, m, t, sum1, sum2;
    int main() {
    	freopen("escape.in", "r", stdin);
    	freopen("escape.out", "w", stdout); 
    	cin >> m >> n >> t;
    	for (int i = 1; i <= t; i ++) {
    		sum1 += 17;
    		if (m >= 10) m -= 10, sum2 += 60;
    		else m += 4;
    		sum1 = max(sum1, sum2);
    		if (sum1 > n) {
    			printf("Yes\n%d\n", i);
    			return 0;
    		}
    	}
    	printf("No\n%d\n", sum1);
    	return 0;
    }
    
    • 0
      @ 2025-4-6 15:20:46

      #include<bits/stdc++.h> using namespace std; int main() { int m,s,t,now=0; cin>>m>>s>>t; int s1=0,s2=0; for(int i=1;i<=t;i++) { s1+=17; if(m>=10) { s2+=60; m-=10; } else m+=4; if(s2>s1) s1=s2; if(s1>s) { cout<<"Yes"<<endl<<i<<endl; return 0; } } cout<<"No"<<endl<<s1<<endl; return 0; }

      • 0
        @ 2022-7-11 12:20:06
        #include<iostream>
          #include<cstdio>
          #include<cstring>
          using namespace std;
          int m,s,t;// 法力,距离,时间
         struct node
         {
              int juli;// 距离 
              int fali;// 法力 
             int shanshuo;
         }dp[300001];
         int main()
         {
             scanf("%d%d%d",&m,&s,&t);
             dp[0].fali=m;
             for(int i=1;i<=t;i++)
             {
                 if(dp[i-1].fali>=10)
                 {
                     dp[i].fali=dp[i-1].fali-10;
                     dp[i].shanshuo=dp[i-1].shanshuo+60;
                 }
                 else
                 {
                     dp[i].fali=dp[i-1].fali+4;
                     dp[i].shanshuo=dp[i-1].shanshuo;
                 }
                 dp[i].juli=max(dp[i-1].juli+17,dp[i].shanshuo);
             }
             if(dp[t].juli>s)
             {
                 for(int i=0;i<=t;i++)
                 {
                     if(dp[i].juli>s)
                     {
                        printf("Yes\n%d",i);
                         return 0;
                     }
                 }
            }
             else
             {
                 printf("No\n%d",dp[t].juli);
                 return 0;
           }
            return 0;
         }
        
        • 1

        信息

        ID
        5
        时间
        1000ms
        内存
        256MiB
        难度
        4
        标签
        (无)
        递交数
        136
        已通过
        63
        上传者