2018-2019 ICPC, NEERC, Northern Eurasia Finals G. Guest Student
阿新 • • 發佈:2018-12-19
題目:
題意:
給出一週的是否上課狀況和需要上課天數,求需要呆多少天才能達到目標上課天數。
思路:
模擬。
對最後一週的上課情況進行模擬,求出最後一週最短的天數,然後與前幾周的數目*7相加即為答案。
程式碼如下:
#include <bits/stdc++.h> using namespace std; const int maxn=1e4+5; typedef long long ll; int t; ll k; int week[10]; int main() { scanf("%d",&t); while (t--) { ll sum=0,ci=0; scanf("%lld",&k); for (int i=0;i<7;i++) { scanf("%d",&week[i]); if(week[i]) { ci++; } } ll yu=k%ci; ll zhou=k/ci; if(yu==0) { yu=ci; sum+=(zhou-1)*7; } else { sum+=zhou*7; } if(yu) { ll sheng=0x3f3f3f3f; for (int i=0;i<7;i++) { if(week[i]) { ll fen=0,tian=0; for (int j=i;;j=(j+1)%7) { if(tian>=yu) { break; } fen++; if(week[j]) { tian++; } } sheng=min(fen,sheng); } } sum+=sheng; } printf("%lld\n",sum); } return 0; }