题目链接:http://118.190.20.162/view.page?gpid=T51
刚看到题的时候一直想的是逆推,然后拿了个80,自己也知道逆推是有一些数据不对的但也没想到怎么改进。
后来看了大家的思路是顺推……有时候还是要暴力一点……
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int T; 5 while(cin>>T){ 6 if(T<=3500){ 7 cout<<T<<endl; 8 } 9 else{ 10 for(int i=3600;i<=1000000;i+=100){ 11 int s=0; 12 if(i>=3600&&i<=5000) 13 s=s+(i-3500)*0.03; 14 if(i>=5100&&i<=8000) 15 s=s+(i-5000)*0.1+45; 16 if(i>=8100&&i<=12500) 17 s=s+(i-8000)*0.2+45+300; 18 if(i>=12600&&i<=38500) 19 s=s+(i-12500)*0.25+45+300+900; 20 if(i>=38600&&i<=58500) 21 s=s+(i-38500)*0.3+45+300+900+6500; 22 if(i>=58600&&i<=83500) 23 s=s+(i-58500)*0.35+45+300+900+6500+6000; 24 if(i>=83600) 25 s=s+(i-83500)*0.45+45+300+900+6500+6000+8750; 26 if(i-s==T){ 27 cout<<i<<endl; 28 break; 29 } 30 } 31 } 32 } 33 return 0; 34 }
时间: 2024-11-01 18:53:50