Codeforces Round 957 (Div. 3) F. Valuable Cards

server/2024/12/23 4:22:32/

题目

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define fi first
#define se second
#define lson p << 1
#define rson p << 1 | 1
#define ll long longconst int maxn = 1e6 + 5, inf = 1e18, maxm = 4e4 + 5, base = 37;
const int N = 1e4;
// const int mod = 1e9 + 7;
// const int mod = 998244353;
const __int128 mod = 212370440130137957LL;int n, m;
int a[maxn], b[maxn];
//long long ? maxn ? n? m?void solve(){ll res = 0;int x;cin >> n >> x;for(int i = 1; i <= n; i++){cin >> a[i];}vector<int> divs;divs.pb(0);vector<int> id(x + 1, 0);for(int i = 1; i * i <= x; i++){if(x % i == 0){divs.pb(i);// id[i] = divs.size() - 1;if(x / i != i){divs.pb(x / i);// id[x / i] = divs.size() - 1;}}}int sz = divs.size() - 1;sort(divs.begin() + 1, divs.begin() + sz + 1);//排序因为后面要从大的因数开始更新for(int i = 1; i <= sz; i++){id[divs[i]] = i;//x的因数到编号的映射}vector<int> can(sz + 1, 0);//can[i]表示因数divs[i]能不能被凑出can[1] = 1;res = 1;for(int i = 1; i <= n; i++){if(x % a[i] != 0) continue;//不是x的因数,直接忽略if(can[id[x / a[i]]]){res++;can.assign(sz + 1, 0);can[1] = 1;can[id[a[i]]] = 1;continue;}//必须从大的因数开始更新can,//设//下标 : 1 2 3 4//divs : 1 2 4 8//can  : 1 0 0 0//当前数a[i] : 2//若从小的因数开始更新,那么更新之后//can  : 1 1 1 1 (显然错误)for(int j = sz; j >= 1; j--){if(divs[j] % a[i] == 0 && can[id[divs[j] / a[i]]]){can[j] = 1;}}}cout << res << '\n';
}signed main(){ios::sync_with_stdio(0);cin.tie(0);cout << fixed << setprecision(9);int T = 1;cin >> T;while (T--){solve();}return 0;
}


http://www.ppmy.cn/server/61084.html

相关文章

Maven学习笔记——如何在pom.xml中通过坐标为项目导入jar包

注意&#xff1a;我们只导入了一个jar包坐标&#xff0c;但右边项目中确多出来了好几个jar包&#xff0c;这是因为我们导入的该jar包所依赖其他jar包&#xff0c;maven自动帮我们导入了进来

git合并报错:git -c core.quotepath=false -c log.showSignature=false merge r

这个错误通常发生在 Git 尝试合并两个没有共同祖先的历史时&#xff0c;比如在合并不同的分支或仓库时&#xff0c;可以尝试以下几种方法&#xff1a; 允许不相关历史的合并: git merge release-3.6 --allow-unrelated-histories这个选项告诉 Git 允许合并两个没有共同历史的分…

Mysql触发器

在product表上创建三个触发器。每次激活触发器后&#xff0c;都会更新operate表。product表和 表的内容如下 Product表内容 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 产品编号 Int(10) 是 否 是 是 否 Name 产品功能 Varchar(20) 否 否 是 否 否 MainFunction 主…

Vue3学习体验(一)

搭建工程 使用vue-cli脚手架创建vue3工程 vue create vue3-app-vue-cliVue-cli官网&#xff1a;https://cli.vuejs.org/zh/guide/installation.html 使用vite搭建vue3工程 npm init表示临时的下载vite应用来创建vue3工程&#xff0c;工程名称为vue3-app-vite npm init vit…

Android adb启动任意app的几种方式

使用adb启动应用程序主要有两种方式&#xff1a;一种是已知应用程序的包名和主Activity&#xff0c;另一种是不知道应用程序的包名和主Activity。 已知应用程序的包名和主Activity 在这种情况下&#xff0c;我们可以通过输入特定的adb命令来启动应用程序。具体步骤如下&#x…

【Docker 入门】

文章目录 概要 一、安装Docker CE1.1.配置阿里云镜像加速【可选】1.2.重启 二、Docker版本选择三、Docker指令1.Docker命令1.1.run1.2.start/stop/restart1.3.kill1.4.rm1.5.create1.6.ps1.7.exec1.8.top1.9.port 2.Dockerfile关键字3.镜像打包4.镜像运行5.镜像导入导出6.镜像查…

报错:pytest: error: argument -m: expected one argument (via addopts config)

错误&#xff1a;ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...] pytest: error: argument -m: expected one argument (via addopts config) 原因&#xff1a;pytest.ini里面-m应该去掉&#xff0c;因为没指定标签。 [pytest] markerssmoke:冒烟测试sy…

GEO数据挖掘从数据下载处理质控到差异分析全流程分析步骤指南

综合的教学视频介绍 GEO数据库挖掘分析作图全流程每晚11点在线教学直播录屏回放视频&#xff1a; https://www.bilibili.com/video/BV1rm42157CT/ GEO数据从下载到各种挖掘分析全流程详解&#xff1a; https://www.bilibili.com/video/BV1nm42157ii/ 一篇今年近期发表的转…