题解 P1424 【小鱼的航程(改进版)】

woshiluo

2018-01-22 09:35:34

Solution

这道题目正儿八经没啥难度,不过我看题解里没有和我方法相同的,那么我就来说一下吧 ### 思路 *** 因为 `n` 的最大值为 `long int` 所以循环加有超时的风险 ~~虽然后面发现数据水没这个必要~~ 所以对n要进行处理 ` 它上午游泳 150 公里,下午游泳 100 公里` 这句话可以合并为`它一天游 250 公里` 并且题目中有讲`晚上和周末都休息(实行双休日)` 所以它一周游 5 天,每周游5\*250=1250(公里) 那么我们来看看代码 ### 代码 *** ```cpp #include <cstdio> using namespace std; int a[8]={0,250,250,250,250,250,0,0};//对每天游的公里数打个表 int x,n,cnt; int main(){ scanf("%d%d",&x,&n);//从周 x 开始游,游 n 天 int temp=n/7; n%=7;//游了 temp 周,又 n 天 cnt+=1250*temp; //目前已知的路数加起来,也就是周数(temp)*每周游的公里数(1250) for(int i=1;i<=n;i++){// 循环解决剩下的n天 cnt+=a[x];//加上目前天游的公里数 x++;//加一天 if(x>7)x-=7;//如果大于周天就到周一 } printf("%d",cnt);//输出 } ```