题目大意:将$1$到$n(1<n\leqslant6000)$分成若干组数,要求每组数的和均为质数,若存在一种分配方式,输出每个数所在的组的编号,有多组解输出任意一组解,若不存在,输出$-1$

题解:根据这一题的结论分[CF735D]Taxes

卡点:未判断奇数分成$3$个质数的情况

C++ Code:

#include <cstdio>
#define maxn 6010
int n;
int bel[maxn], idx;
inline bool isp(int x) {
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) return false;
}
return true;
}
void solve(int x) {
if (isp(x)) {
idx++;
for (int i = n; i; i--) {
if (x >= i && !bel[i]) {
bel[i] = idx;
x -= i;
}
}
return ;
}
if (x & 1) {
if (isp(x - 2)) solve(2), solve(x - 2);
else solve(3), solve(x - 3);
return ;
}
for (int i = x + 1 >> 1; i > 1; i--) if (isp(i) && isp(x - i)) {
solve(i), solve(x - i);
return ;
} }
int main() {
scanf("%d", &n);
solve(n * (n + 1) >> 1);
for (int i = 1; i <= n; i++) {
printf("%d", bel[i]);
putchar(i == n ? '\n' : ' ');
}
return 0;
}

  

最新文章

  1. iOS类中的属性设置背景色(统一)
  2. 在IIS7.5中ASP.NET调用cmd程序拒绝访问决绝方法小记
  3. Apache, Tomcat, JK Configuration Example
  4. CSS基础3
  5. myql数据库在cmd下,中文乱码的问题原因
  6. oracle配置数据库连接方式
  7. 打开FileGeoDatabase中要素类
  8. 2016 Al-Baath University Training Camp Contest-1 J
  9. 在没有spineRunTime情况下手动使用spine数据
  10. jQuery 常见操作实现方式
  11. dword word byte 相互转换 .xml
  12. 如何使用jetty
  13. 人生的抉择—aspx、ashx、asmx文件处理请求效率比较
  14. Spring JTA multiple resource transactions in Tomcat with Atomikos example--转载
  15. java设计模式---享元模式
  16. 2013第39周一Web打印
  17. VPN工作原理
  18. VC++中解决“在查找预编译头使用时跳过”的方法
  19. 关于maven项install时报找不到符号的错误
  20. 用Lua定制Redis命令

热门文章

  1. filter-policy和AS-PATH-FILTER过滤BGP路由条目
  2. Sencha Visual Studio(IDE插件)
  3. 【Js】Jquery遍历-each(function(e){})中的e和$(this)的区别
  4. Python接受流式输入
  5. Python面向对象的类的操作
  6. 博弈dp 以I Love this Game! POJ - 1678 为例
  7. 链栈的c++实现
  8. HDU 1495 非常可乐 (只是转了个弯的广搜题)
  9. PHP.45-TP框架商城应用实例-后台20-权限管理-RBAC表构造与代码生成
  10. 【转】在Ubuntu 16.10 Server 上部署 Moodle