当前位置: 首页 > news >正文

dfs:选数

题目:P1036 [NOIP 2002 普及组] 选数 - 洛谷

        先判断是排列还是组合(组合for循环是从1开始,排列for循环是从pos开始)。也就是说,组合不能出现数字相同的情况,例如已经有了123,又出现213,❌。排序可以。

        这道选数是“组合”。

如何判断是不是质数?

  • 1既不是质数,也不是合数。if (sum <= 1) return; 
  • 其余从2开始,一直除到sqrt(sum),if (sum % i == 0) return;

用布尔数组记录是否已经选过。这道题超时很正常,对于判断质数的优化,在以后会学。


#include <iostream>
#include <vector>
#include <cmath>const int N = 50;
typedef long long LL;using namespace std;vector<int> b;
LL a[N];
bool st[N];LL n, k;
LL ret = 0;void dfs(int pos)
{if (b.size() == k){LL sum = 0;for (auto x : b){sum += x;}if (sum <= 1) return; for (int i = 2; i <= sqrt(sum); i++){if (sum % i == 0) return;}ret++;return; } for (int i = pos; i <= n; i++){if (st[i] == true) continue;b.push_back(a[i]);st[i] = true;dfs(i);b.pop_back();st[i] = false;}
}int main()
{cin >> n >> k;for (int i = 1; i <= n ;i++) cin >> a[i];dfs(1);cout << ret;return 0;
}

http://www.dtcms.com/a/532462.html

相关文章:

  • 2.2.1.3 大数据方法论与实践指南-文档管理规范
  • 【智能制造工厂工业资料集】流程制造智能工厂总体架构及建设路线规划方案(PPT)
  • MFC简单入门学习
  • HD 钱包- MetaMask
  • 米拓做的网站如何改代码互联网站备案登记表
  • 【Go】--抛出和处理异常
  • Word转PDF工具,免费生成图片型文档
  • [sam2图像分割] MemoryAttentionLayer._forward_ca | 交叉注意力
  • 孝感网站建设公司电子商务平台内经营者享有公平交易的权利
  • Go语言:常量计数器iota的意义
  • 27-Scikit Learn:讲解Python中经典的机器学习工具库
  • 做网站运营工作流程网络营销概念
  • nnUNetv2
  • Android Studio新手开发第三十二天
  • 《神领物流》day08-作业范围微服务_完整代码【简单易懂注释版】
  • 西安网站定制开发h5课件制作软件
  • ABAP 调用接口传输文件(multipart form-data)
  • 联邦学习:现状与展望!
  • Linux IPC 为什么要这么架构
  • 实验室PRCV 2025论文分享|如何利用大模型自动生成高质量英语阅读理解练习题
  • C 转 C++:高效上手的核心容器与函数指南
  • 网站建设人员岗位设置网站建设职业兴趣要求
  • MyBatis操作数据库入门
  • 美团网站开发北京网站建设外包公司
  • [nanoGPT] 编排训练 | `get_batch` | AdamW | `get_lr` | 分布式训练(DDP)
  • 2.2.1.1 大数据方法论与实践指南-公司产品功能命名管理
  • Spring Boot3零基础教程,@SpringBootApplication 注解详细说明,笔记63
  • Flutter 响应式 + Clean Architecture / MVU 模式 实战指南
  • 免费注册二级域名的网站网站制作哪些公司好
  • 【Go】--time包的使用