题目链接:Frobenius

思路:想了很久还是没转过弯来。

递推。

初始化vis[0] = 1,每次有四种方法扩展,这样能扩展到所有能被表示的数。上界的判定,如果一万以内的数都能被表示,那以后的数肯定就都能被表示。

/*
HDU 1681 递推。if (vis[i] == 1) {vis[i+a] = vis[i+b] = vis[i+c] = vis[i+d] = 1; }
可以得到所有0~10^6以内不能被表示的数。然后,判断最大是不是<10^6,只要循环到一百万零一万就可以了。
因为四个数范围都<=一万。
*/ #include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
#define maxn 2000000 bool vis[maxn]; int main() {
int t;
scanf("%d", &t);
while(t--) {
int a, b, c, d;
memset(vis, 0, sizeof(vis));
scanf("%d%d%d%d", &a, &b, &c, &d);
int ans = -1, cnt = 0;
vis[0] = 1; for (int i=0; i<=maxn/2+a+b+c+d; ++i) {
if (vis[i]) {
vis[i+a] = vis[i+b] = vis[i+b] = vis[i+c] = vis[i+d] = 1;
}
else {
if (i <= maxn/2) cnt++;
ans = max(ans, i);
}
} if (ans > maxn/2) ans = -1;
printf("%d\n%d\n", cnt, ans);
}
return 0;
}

  

最新文章

  1. 使用LogMaster4Net实现应用程序日志的集中管理
  2. 【已更新】【原创】Chrome53 最新版惊现无厘头卡死 BUG!
  3. 结对开发训练(续)(郭林林&amp;胡潇丹)
  4. Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力)
  5. 32、shiro 框架入门三
  6. C++ 关键字 explicit, export, mutable
  7. 简单加密算法在C#中的实现
  8. AnyEvent::HTTP 实现异步请求
  9. nodejs 复制、移动文件
  10. high performance program (SSE4.2 intrin instruction)
  11. php 便利数组方法
  12. ArcGIS API for JavaScript 中的数据类型【vs】GPServer的数据类型
  13. iOS ----------各种判断
  14. 论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN
  15. 所有不同的序列串-----LCS算法的变种
  16. 增删改查的SSM小项目
  17. NetCore 生成RSA公私钥对,公钥加密私钥解密,私钥加密公钥解密
  18. vue 关于父组件无法触发子组件的事件的解决方法
  19. Mysql INSERT、REPLACE、UPDATE的区别
  20. 物联网架构成长之路(18)-接阿里云OSS服务

热门文章

  1. ZOJ-2342 Roads 二分图最小权值覆盖
  2. apt-get的常用用法
  3. iOS开发之总结
  4. iframe页面调用父窗口JS函数
  5. 转:从开源项目学习 C 语言基本的编码规则
  6. 使用火狐的restclient发送http接口post及get请求
  7. Rest-Assured
  8. virutalbox虚拟机硬盘扩容
  9. LaTeX内容总结
  10. 【bzoj1059】矩形游戏