题意很明了。

然后我大概的做法就是暴搜了

先把每个几边形数中四位数的处理出来。

然后我就DFS回溯着找就行了。

比较简单吧。

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <vector>
using namespace std;
vector<int>g[7], v[7][10000];
int vis[7];
void get_three()
{
for(int i = 1; ; i++)
{
int x = i * (i + 1) / 2;
if(x >= 10000) break;
if(x >= 1000) g[0].push_back(x);
}
}
void get_four()
{
for(int i = 1; ; i++)
{
int x = i * i;
if(x >= 10000) break;
if(x >= 1000) g[1].push_back(x);
}
}
void get_five()
{
for(int i = 1; ; i++)
{
int x = i * (3 * i - 1) / 2;
if(x >= 10000) break;
if(x >= 1000) g[2].push_back(x);
}
}
void get_six()
{
for(int i = 1; ; i++)
{
int x = i * (2 * i - 1);
if(x >= 10000) break;
if(x >= 1000) g[3].push_back(x);
}
}
void get_seven()
{
for(int i = 1; ; i++)
{
int x = i * (i * 5 - 3) / 2;
if(x >= 10000) break;
if(x >= 1000) g[4].push_back(x);
}
}
void get_eight()
{
for(int i = 1; ; i++)
{
int x = i * (3 * i - 2);
if(x >= 10000) break;
if(x >= 1000) g[5].push_back(x);
}
}
int a[7];
int ans;
int flag;
void dfs(int deep)
{
if(flag) return;
if(deep == 6)
{
if(a[5] % 100 == a[0] / 100)
{
flag = 1;
printf("%d\n", a[0] + a[1] + a[2] + a[3] + a[4] + a[5]);
return;
}
}
for(int i = 0; i < 6; i++)
{
if(!vis[i])
{
for(int j = 0; j < g[i].size(); j++)
{
int y = g[i][j];
if(!deep || y / 100 == a[deep - 1] % 100)
{
vis[i] = 1;
a[deep] = y;
dfs(deep + 1);
vis[i] = 0;
}
}
}
}
}
int main()
{
get_three();
get_four();
get_five();
get_six();
get_seven();
get_eight();
dfs(0);
return 0;
}

最新文章

  1. [LeetCode] Sentence Screen Fitting 调整屏幕上的句子
  2. happypack 原理解析
  3. Intent 转向
  4. ARM菜鸟:JLINK与JTAG的区别
  5. 纯手工全删除域内最后一个EXCHANGE--How to Manually Uninstall Last Exchange 2010 Server from Organization
  6. 2014-08-04 BBS主页页面的设计
  7. 利用mapreduce清洗日志内存不足问题
  8. 简陋的 ASP.NET CORE 单页Web应用程序“框架”
  9. Fitnesse - Slim Tables
  10. Python内置函数(54)——callable
  11. 剑指Offer——乐视笔试题+知识点总结
  12. java的finalize方法使用
  13. 树莓派(Raspberry Pi)使用Shell编写的极简Service
  14. Python 练习:三级菜单选择城市(二)
  15. 我学到的新知识之——Lotus Notes闪退如何修复
  16. LinkedHashMap结构get和put源码流程简析及LRU应用
  17. java.net.NoRouteToHostException
  18. 像素 转换 px dp
  19. js 下拉加载
  20. Centos7 安装netcat

热门文章

  1. C#实现发送邮件
  2. ViewPager 嵌套Listview 让Listview响应 ViewPager 左右滑事件
  3. scrolView
  4. Swift - 03 - 整数类型
  5. js监听滚动条事件
  6. Asp.net的IP地址屏蔽功能设计
  7. 全志A10_linux3.0内核编译记录
  8. FindBugs的Bug类型及分析
  9. Extjs之rowEditing编辑状态时列不对齐
  10. django+nginx+supervisor+gunicorn+gevent 网站部署