2 条题解

  • 0
    @ 2025-10-8 16:51:24
    #include <bits/stdc++.h>
    using namespace std;
    int M, S, T, f[310000];
    int main()
    {
    	scanf("%d%d%d", &M, &S, &T);
    	f[0] = 0; 
    	for(int i=1; i<=T; i++)
    	{
    		if(M >= 10) f[i] = f[i-1] + 60, M -= 10;
    		else      f[i] = f[i-1],   M += 4;
    	}
    	for(int i=1; i<=T; i++)
    	{
    		f[i] = max(f[i], f[i-1] + 17);
    		if(f[i] >= S)
    		{
    			printf("Yes\n%d\n", i);
    			return 0;
    		}
    	}
    	printf("No\n%d\n", f[T]);
    	return 0;
    }
    
    • 0
      @ 2025-10-8 16:51:17
      #include<bits/stdc++.h>
      using namespace std;
      int M,S,T,f[310000];
      int main()
      {
      	scanf("%d%d%d",&M,&S,&T);
      	f[0]=0; 
      	for(int i=1;i<=T;i++)
      	{
      		if(M>=10) f[i]=f[i-1]+60,M-=10;
      		else      f[i]=f[i-1],   M+=4;
      	}
      	for(int i=1;i<=T;i++)
      	{
      		f[i]=max(f[i],f[i-1]+17);
      		if(f[i]>=S)
      		{
      			printf("Yes\n%d\n",i);
      			return 0;
      		}
      	}
      	printf("No\n%d\n",f[T]);
      	return 0;
      }
      • 1

      【模拟(难度:6)】[NOIP 2007 普及组] 守望者的逃离

      信息

      ID
      648
      时间
      1000ms
      内存
      128MiB
      难度
      3
      标签
      递交数
      30
      已通过
      19
      上传者