标签:amp cas show name cep tle tput view sans
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5312
For example,
10 1 2 3 4 5 6 7 8 22 10
1 2 3 4 5 6 1 2 4 4
(序列中的没一个数能够使用若干次)
详见代码 。
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std; int a[100005]; bool check1(int m) { for (int i=1; i<20010; i++) { if (a[i]==m) return 1; } return 0; } bool check2(int m) { int j; for (int i=1,j=20010-1; i<20010&&a[i]<m; i++) { while (a[i]+a[j]>m) j--; if (a[i]+a[j]==m) return 1; } return 0; } int main() { for (int i=0; i<20010; i++) { a[i]=3*i*(i-1)+1; } int t; scanf("%d",&t); while (t--) { int m; scanf("%d",&m); int flag=0; if (check1(m)) { printf ("1\n"); continue; } else if (check2(m)) { printf ("2\n"); continue; } else { for (int i=3; i<=8; i++) //循环到8的原因是由于模6的余数仅仅有0-5六个 { if ((m-i)%6==0) { printf ("%d\n",i); flag=1; break; } } } if (flag==0) { printf ("-1\n"); } } return 0; }
标签:amp cas show name cep tle tput view sans
原文地址:http://www.cnblogs.com/mfmdaoyou/p/6935223.html