差一个点,#9 wa了,求教

P1095 [NOIP2007 普及组] 守望者的逃离

```cpp #include <bits/stdc++.h> using namespace std; int main() { int t,t1=-1,m,s,d1=0; cin>>m>>s>>t; while(1) { t1++; if(t1<=t&&d1>=s) { cout<<"Yes"<<endl<<t1<<endl; return 0; } if(t1==t&&d1<s) { cout<<"No"<<endl<<d1<<endl; return 0; } if(m>=10) m-=10,d1+=60; else if(m>=6&&m<=10&&t-t1>=2&&s-d1>=18) m+=4; else if(m>=2&&m<=5&&t-t1>=3&&s-d1>=35) m+=4; else if(m>=0&&m<=1&&t-t1>=7&&s-d1>=103) m+=4; else d1+=17; } } ```
by sjc061031 @ 2017-09-21 17:38:22


```cpp #include<iostream> using namespace std; int m,n,s,t,s2,s1,i; int main(){ cin>>m>>s>>t; for(i=1;i<=t;i++){ if(m>=10) { s1=s1+60; m=m-10; } else m=m+4; s2=s2+17; if(s2<s1) s2=s1; if(s2>=s) { cout<<"Yes"<<endl; cout<<i; return 0; } } cout<<"No"<<endl; cout<<s2; } ```
by gudingning666 @ 2017-09-29 15:53:51


```cpp #include<cstdio> int main() { int i,j,m,s,t,n,ans,max; scanf("%d%d%d",&m,&s,&t); ans=1000000; max=0; for(i=0;i<=t;i++) { n=m+i*4; n=n/10; if (n*60>=s) {if ((s+59)/60+i<ans) ans=(s+59)/60+i;} else if (n+i+(s-n*60+16)/17<ans) ans=n+i+(s-n*60+16)/17; if (n>=t-i) if (60*(t-i)>max) max=(t-i)*60; if (n+i>t) continue; if (n*60+(t-n-i)*17>max) max=n*60+(t-n-i)*17; } if (ans<=t) {printf("Yes\n");printf("%d",ans);} else {printf("No\n");printf("%d",max);} } ```
by 跃动の光は @ 2017-10-15 11:57:00


###我看到了一群打表大神啊。。。直接发到题解区不好吗,题解全是DP,看的心慌
by Jigsaw_Killer @ 2017-11-02 22:44:12


|