2019百度之星 第八场 6672-Seq【规律】
题目:
http://acm.hdu.edu.cn/showproblem.php?pid=6672
思路:
一道规律题,暴力跑出代码可以看出规律,n <= 2 要特判。另外注意要用 long long,否则WA。
代码:
#include<cstdio>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
#define ll long long
ll a[10];
int main() {
ll t;
a[0] = 0;
a[1] = 0;
a[2] = 3;
a[3] = 0;
a[4] = 3;
a[5] = 5;
a[6] = 4;
cin >> t;
while(t--) {
ll n;
cin >> n;
if(n == 1)
printf("1\n");
else if(n == 2) {
printf("1\n");
}
else {
n -= 2;
n += 6;
ll pianyi = (n-1) / 6;
ll p = n % 6;
if(p == 1 || p == 3)
printf("%lld\n",a[p]+pianyi-1);
if(p == 2)
printf("%lld\n",a[p]+(pianyi-1)*6);
if(p == 4)
printf("%lld\n",a[p]+(pianyi-1)*3);
if(p == 5)
printf("%lld\n",a[p]+(pianyi-1)*4);
if(p == 0)
printf("%lld\n",a[6]+(pianyi-1)*3);
}
}
return 0;
}