Codeforces Round #772 (Div. 2)简训

【芯片设计- RTL 编译与仿真 1.2 -- Visualizer 常用使用命令】 打开波形后,如果想要看到所有信号的数据,可以点击下图中红框中的按钮,因为默认verdi 默认并不是显示所用信号。如果想统计某一个信号中有多少笔数据时,可以使用 Expression->Edege Count 功能。如下图所示,如果没有打开前导0的功能时,当某一笔数据位0时,只会显示1个0。如果需要将波形的数据导出到文本文件时,可以按照下面步骤进行。打开前导0功能之后,会根据数据位宽来显示对应0的个数。 阅读详情

导语

两个,真菜

涉及的知识点

二分图,思维,数学,线性dp

链接:Codeforces Round #772 (Div. 2)

题目

A Min Or Sum

题目大意:给出一个有n个元素的序列a,选择两个下标i,j,将 a i a_i ai​替换成 x x x, a j a_j aj​替换成 y y y,但是 a i a_i ai​或上 a j a_j aj​= x x x或上 y y y,求出无限次操作后能得到的最小序列和

思路:贪心的考虑,直接将 x x x变成 a i ∣ a j a_i|a_j ai​∣aj​, y y y变成0,然后接着构造即可,最后结果等价于求所有数的或和

代码

#include <bits/stdc++.h>
#define int long long
#define INF 0x3f3f3f3f
using namespace std;
const int maxn=2e5+5;
int n,m,t,a[maxn];
signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >>t;
    while(t--) {
        cin >>n;
        int res=0;
        while(n--) {//求或和
            int x;
            cin >>x;
            res|=x;
        }
        cout <<res<<endl;
    }
    return 0;
}

B Avoid Local Maximums

题目大意:给出有n个整数的序列a,每个元素 [ 1 , 1 0 9 ] [1,10^9] [1,109],现在每次可以选择将序列中的任意一个元素替换成范围内的一个数,输出最少需要几次操作才能使得序列中不存在大于自己相邻数的元素,并输出构造的最后的序列

思路:考虑贪心,遍历一遍就能处理完是最理想的情况,一开始的思路是对大于相邻数的元素直接替换成相邻数的最大值,但是不能这样,因为可能会对已经经过的下标产生干扰,正确做法是当发现当前遍历的元素大于相邻数时,需要替换的是右边的邻居,因为这样的就不会对已经构造好的左边产生干扰

代码

#include <bits/stdc++.h>
#define int long long
#define INF 1e9
using namespace std;
const int maxn=2e5+5;
int n,m,t,a[maxn];
signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >>t;
    while(t--) {
        cin >>n;
        int ans=0;
        for(int i=1; i<=n; i++)cin >>a[i];
        for(int i=2; i<=n-1; i++)
            if(a[i]>a[i-1]&&a[i]>a[i+1])ans++,a[i+1]=max(a[i],a[i+2]);
            //如果大于左邻右舍,需要更改的是右边
        cout <<ans<<endl;
        for(int i=1; i<=n; i++)
            cout <<a[i]<<" ";
        cout <<endl;
    }
    return 0;
}

C Differential Sorting

题目大意:给出有n个整数序列a,定义操作如下:选择三个下标 x , y , z ( x < y < z ) x,y,z(x<y<z) x,y,z(x<y<z),将 a x a_x ax​替换成 a y − a z a_y-a_z ay​−az​,操作之后 ∣ a x ∣ ≤ 1 0 18 |a_x|\le10^{18} ∣ax​∣≤1018,在操作次数不超过 n n n的前提下使得最后的序列为非递减序列,如果存在多种方案,输出操作数与对应操作,否则输出-1

思路:一开始思考的时候忽略了一个关键条件: x < y < z x<y<z x<y<z,这意味着,每个元素只能选择在下标之后的两个不同元素,那么显然,第n-1和n个元素是没办法被替换的,因此,如果第n-1个元素大于第n个元素,则一定无法保持整个序列非递减,接下来就是对第n个元素进行讨论(因为可以用第n-1个元素和第n个元素来对前n-2个元素统一赋成一个值),如果第n个元素非负(保证第n-1小于它),那么第n-1个元素-第n个元素必然为负数且小于第n-1个元素,可以构造,如果第n个元素为负,那么其余元素必须为负,否则就会有一个元素大于第n个元素了,并且,如果这n个负数不是升序排序的话,那么任意一次替换操作必然会产生一个数比其后面的数大

代码

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=2e5+5;
int n,m,t,p,a[maxn];
signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >>t;
    while(t--) {
        cin >>n;
        for(int i=1; i<=n; i++)cin >>a[i];
        if(a[n]<a[n-1]) {//最后一个不满足条件
            cout <<-1<<endl;
            continue;
        }
        if(a[n]>=0) {//一定可以构造
            cout <<n-2<<endl;
            for(int i=1; i<=n-2; i++)
                cout <<i<<" "<<n-1<<" "<<n<<endl;
            continue;
        }
        if(is_sorted(a+1,a+1+n))cout <<0<<endl;//判断是否有序
        else cout <<-1<<endl;
    }
    return 0;
}

D Infinite Set

题目大意:给出有n个不同整数的序列a,定义一个无穷元素集 S S S包括了所有满足下列一种条件的整数 x x x

  1. x = a i , 1 ≤ i ≤ n x=a_i,1\le i\le n x=ai​,1≤i≤n
  2. x = 2 y + 1 , y ∈ S x=2y+1,y\in S x=2y+1,y∈S
  3. x = 4 y , y ∈ S x=4y,y\in S x=4y,y∈S

输出 S S S集合内所有严格小于 2 p 2^p 2p的元素个数

思路:对于一个正整数 x x x,定义一个函数 f ( x ) = k ( 2 k ≤ x < 2 k + 1 ) f(x)=k(2^k\le x\lt2^{k+1}) f(x)=k(2k≤x<2k+1),那么可以得到 f ( 2 x + 1 ) = f ( x ) + 1 , f ( 4 x ) = f ( x ) + 2 f(2x+1)=f(x)+1,f(4x)=f(x)+2 f(2x+1)=f(x)+1,f(4x)=f(x)+2

首先从一个简单的情况开始,假设 n = 1 , a 1 = 1 n=1,a_1=1 n=1,a1​=1,定义 d p i dp_i dpi​为满足 x ∈ S , f ( x ) = i x\in S,f(x)=i x∈S,f(x)=i的 x x x的个数,根据 f ( x ) f(x) f(x)之间的转换关系,那么可以得到递推式: d p i = d p i − 1 + d p i − 2 dp_i=dp_{i-1}+dp_{i-2} dpi​=dpi−1​+dpi−2​,最后可以得到答案为: ∑ i = 0 p − 1 d p i \sum_{i=0}^{p-1}dp_i ∑i=0p−1​dpi​

现在来讨论一般情况,为了避免重复计算,定义无用数 a i a_i ai​:如果存在一个下标 j j j满足 a i = 2 a j + 1 o r a i = 4 a j a_i=2a_j+1 \quad or\quad a_i=4a_j ai​=2aj​+1orai​=4aj​,那么 a i a_i ai​为无用数,也就是说,如果一开始给出的序列 a a a中存在这样的一个 a i a_i ai​,由于其可以被先前的项推导出来,所以可以不考虑它的贡献

定义 g ( i ) g(i) g(i)为满足 f ( a j ) = i f(a_j)=i f(aj​)=i的下标 j j j的数量,那么更一般的情况就可以得到递推式: d p i = d p i − 1 + d p i − 2 + g ( i ) dp_i=dp_{i-1}+dp_{i-2}+g(i) dpi​=dpi−1​+dpi−2​+g(i),这里加上 g ( x ) g(x) g(x)是因为有些 a j a_j aj​是无法通过前项推得(不是从1开始的),所以需要加上

代码

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=2e5+5;
const int mod=1e9+7;
int n,m,t,p,a[maxn],ans[maxn],dp[maxn],res;
signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >>n>>p;
    for(int i=1; i<=n; i++)
        cin >>a[i];
    sort(a+1,a+1+n);
    set<int>use;
    for(int i=1; i<=n; i++) {
        int x=a[i];
        bool flag=0;
        while(x>0) {
            if(use.count(x))
                flag=1;
            if(x&1)x>>=1;//是奇数,代表是2x+1来的
            else if(x&3)break;//4k+2无法生成
            else x>>=2;//代表是4x来的
        }
        if(!flag)use.insert(a[i]);//判断是否有用数字
    }
    for(int x:use)
        ans[(int)log2(x)]++;//记录初始集合中有用数字对应的贡献
    for(int i=0; i<p; i++) {
        if(i<30)dp[i]=ans[i];//统计初始集合中的贡献
        if(i>=1)//公式
            dp[i]=(dp[i]+dp[i-1])%mod;
        if(i>=2)//公式
            dp[i]=(dp[i]+dp[i-2])%mod;
        res=(res+dp[i])%mod;
    }
    cout <<res<<endl;
    return 0;
}

E Cars

题目大意: x x x轴上有 n n n辆汽车,每一辆车初始时位于一个整点并且没有同一辆车位于同一点,每一辆车初始朝向要么是左,要么是右,并且它们可以随时以任何恒定的正速度沿该方向移动,用一个字符和一个整数来描述每一辆车的状态: o r i i , x i ori_i,x_i orii​,xi​分别对应初始方向和坐标
如果两辆车无论速度是多少,它们永远都不会到达同一点,定义为无用的,也就是无论速度多少在任何时候这两辆车不会共享相同的坐标
如果两辆车无论速度是多少,它们永远都会到达同一点,定义为无用的,也就是无论速度多少在某一时刻这两辆车会共享相同的坐标
现在只有汽车之间的关系,尝试构造出一种包括所有汽车的初始朝向和位置的方案使得满足这些关系
某一时刻,如果两辆车共享相同坐标,之后它们将继续沿着各自的方向移动

思路:首先确定,满足上述两个条件的情况不存在两辆车同向而行,对于两个一定相遇的车,如果同向而行,其中远车速度过大的话就无法相遇了,对于两个一定不相遇的车,近车速度过大的话就可以相遇了,所以对于给出关系的两辆车要么相向,要么异向
那么对于拥有给定关系的两辆车就一定有相反方向,所以可以对存在关系的车建图, 然后进行二分图染色判断是否有颜色相同的邻接点,存在则无解,接下来根据关系建有向边,如果一定相遇,前者坐标小于后者,否则相反,建完有向边后再跑一次拓扑排序判断是否存在环,存在则无解,否则可以直接将拓扑序作为坐标

代码

#include <bits/stdc++.h>
using namespace std;
const int N = 200001;
struct edge {
    int type, u, v;
};
vector <int> adj[N];
int col[N], topo[N];

void dfs(int v) {//染色
    for (int u : adj[v]) if (col[u] == -1) {
            col[u] = col[v] ^ 1;
            dfs(u);
        }
}
bool BipartiteColoring(int n) {
    for (int i = 1; i <= n; ++i)
        col[i] = -1;
    for (int i = 1; i <= n; ++i) if (col[i] == -1) {
            col[i] = 0;
            dfs(i);
        }
    for (int i = 1; i <= n; ++i) for (int j : adj[i]) {//存在邻接点染色相同
            if (col[i] == col[j]) {
                return false;
            }
        }
    return true;
}
bool TopologicalSort(int n) {//拓扑排序
    vector <int> in(n + 1, 0);
    for (int i = 1; i <= n; ++i) for (int j : adj[i]) {//统计入度
            in[j]++;
        }
    queue <int> q;
    for (int i = 1; i <= n; ++i) if (in[i] == 0) {//加入初始节点
            q.push(i);
        }
    int ord = 0;
    while (!q.empty()) {
        int v = q.front();
        q.pop();
        topo[v] = ord++;//拓扑序作为坐标
        for (int u : adj[v]) {
            in[u]--;
            if (in[u] == 0) {
                q.push(u);
            }
        }
    }
    return ord == n;
}
int main () {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n, m;
    cin >> n >> m;
    vector <edge> a(m);
    for (int i = 0; i < m; ++i) {//建图
        cin >> a[i].type >> a[i].u >> a[i].v;
        adj[a[i].u].push_back(a[i].v);
        adj[a[i].v].push_back(a[i].u);
    }
    if (!BipartiteColoring(n)) {//判断是否能二分图染色
        cout << "NO" << endl;
        return 0;
    }
    for (int i = 1; i <= n; ++i) {
        adj[i].clear();
    }
    for (edge e : a) {
        if (col[e.u] == 1)
            swap(e.u, e.v);
        if (e.type == 1) {//根据情况判断有向边方向
            adj[e.u].push_back(e.v);
        } else {
            adj[e.v].push_back(e.u);
        }
    }
    if (!TopologicalSort(n)) {//判断是否有环
        cout << "NO" << endl;
        return 0;
    }
    cout << "YES" << endl;
    for (int i = 1; i <= n; ++i) {
        cout << (col[i] == 0 ? "L " : "R ") << topo[i] << endl;
    }
    return 0;
}

参考文献

  1. C. Differential Sorting(思维)
  2. (思维)C. Differential Sorting
  3. Tutorial
从零实战:模拟Soul/陌陌附近的人接口爬虫(设备指纹·加密逆向·动态代理全解) 在移动互联网流量见顶的今天,LBS(基于位置的服务)社交平台——尤其是Soul和陌陌——依然掌握着海量高活用户的地理位置画像、兴趣标签、在线活跃时段等敏感数据。对于市场调研、流量运营、甚至是城市热力分析而言,“附近的人”接口是一个极具价值的入口。然而,这两款App均采用全参数加密 + 设备指纹风控 + WAF动态防御的三重护城河。直接使用Requests库调用公开API无异于以卵击石。本文将从逆向工程视角出发,完整还原一套可用的附近人信息采集方案,涵盖:抓包与流量分析(绕过SSL Pinning) 阅读详情

相关推荐

安卓ai自动化脚本 Yyds.Auto实现 示例 纯ai图像识别自动点击脚本

纯ai识别实现自动化脚本

专注安卓前沿科技 4779

CF#772 Div.2 A~C 题解

A. Min Or Sum(位运算 + 构造) Description: ​ 对一个数组 任意选择ai aj 用 x y替换他们 不限次数 ​ 要求ai | aj == x | y ​ 问操作完毕后数组和的最小值 Method: ​ 将ai aj换到最小 指的是尽量让每个位数上只有一个1 ​ 5|6 – > min(0|7) ​ 所以使数列的全部数得到min 但是又要保证位上原有的1不发生改变 那么删去多出来的1即可 ​ 在代码上的体现就是|全部数 Code: void solve() { int

DM010maker的博客 325

Anaconda启动失败,一直在loading application的问题

实战基础新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本

Tristan的博客 2771

2.21 CodeForces 补题

Codeforces Round #772 Div. 2A. Min Or SumB. Avoid Local MaximumsC. Differential Sorting A. Min Or Sum 题目链接 解题思路: t组样例,每组给n个数据,对这n个数做或运算,输出。 代码如下: #include<iostream> using namespace std; int main() { int t; cin>>t; while(t--) { int n,x,an

zoloftkiller的博客 413

Windows下CMake的下载与安装详解

目录一、CMake介绍二、CMake的下载与安装 一、CMake介绍 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。 二、CMake的下载与安装 CMake下载链接:https://cmake.org/download/。 下载最新稳定版即可(Latest Release): 下载完成后,单击“Next”按钮,在下图中勾选“I acce

Wendy的博客 8万+

TI Sitara PRU可编程实时单元:工业自动化中的硬实时协处理器解析

在嵌入式系统与工业自动化领域,实时性和确定性是核心需求。实时性指系统对外部事件做出响应的可预测时间,确定性则要求响应时间严格一致,不受其他任务干扰。其技术原理通常通过专用硬件或实时操作系统实现,例如采用独立于主CPU的协处理器来处理高精度时序任务。这种设计的技术价值在于,它能将主CPU从高实时性要求的任务中解放出来,专注于复杂业务逻辑,同时确保关键IO操作达到纳秒级延迟和极低抖动。应用场景广泛覆盖伺服电机控制、工业通信协议加速和多接口扩展等。本文聚焦的TI Sitara系列PRU(可编程实时单元),正是此类

weixin_42526068的博客 283

【CF #772 div2】A-C

A. Min Or Sum 题目 分析 根据样例寻找规律,发现只需将所给数组挨个进行或运算即可。 代码 #include<bits/stdc++.h> #define ll long long using namespace std; const ll maxn=1e9+10; const ll mod=1e9+7; const double pi=acos(-1); int main() { int t; cin>>t; while(t--) { int

m0_56535442的博客 229

SAP成本核算变式OKKN配置详解:从CK11N到CK24,手把手教你搞定标准成本发布

本文深入解析SAP成本核算变式OKKN的配置原理与实战应用,涵盖从CK11N到CK24的标准成本发布全流程。详细讲解数量结构控制、价值结构配置及间接费用计算规则,帮助成本会计精准掌握标准成本计算逻辑,解决BOM版本选择、工艺路线获取等常见问题,提升企业成本管理效率。

weixin_27219587的博客 284

【题目记录】——Codeforces Round #772 (Div. 2)

文章目录 题目集地址Codeforces Round #772 (Div. 2)

气派飞鹰的博客 409

2.0 电子凸轮 西门子1500电子凸轮使用研究1

本文研究了S7-1500T电子凸轮同步控制技术,通过仿真实验得出以下结论:1)通过比例系数可调整凸轮曲线形状;2)解除同步需调用从轴其他运动指令;3)详细阐述了凸轮同步的5个实施步骤。重点分析了三种同步类型(主值距离同步、动态参数同步和直接同步)的特点及应用场景,并探讨了缩放系数、偏移量等参数对凸轮曲线的影响。同时介绍了凸轮应用模式及常见异常处理方法,为工程应用提供了重要参考。

qq_34047402的博客 808

AI智能体面试实战与真题解析: 312+道面试题完整答案 (下篇)

本文覆盖220道基础八股文+92道项目面试题,涵盖Agent架构、RAG、工具调用、记忆系统、多智能体、大模型基础、工程化实践、Prompt工程9大模块,含完整代码实现和模拟面试剧本。

program哲学 296

【DP】【二进制】Codeforces Round #772 (Div. 2) D.Infinite Set

链接: https://codeforces.com/contest/1635 A. Min Or Sum 只要满足两个值的或结果在某一位上为1的时候,保证两个值有一个为1即可。 所以结果为所有值的或,只要所有值该位上有1,那么结果就存在1 #include<bits/stdc++.h> using namespace std; void solve() { int n; cin >> n; int res = 0; for(int i = 1; i <= n; i+

行码棋 445

【Python_Zebra斑马打印机编程学习笔记(二)】基于BarTender将btw文件转换为zpl文件

本文介绍如何基于 BarTender 软件将 btw 格式的文件转换为 zpl 格式的文件,有需要的读者可以点赞收藏,也欢迎在评论区进行讨论。

禾戊之昂的博客 3375

Codeforces Round #772 (Div. 2) A~D

Codeforces Round #772 (Div. 2) 比赛链接:Codeforces Round #772 (Div. 2) A - Min Or Sum 题目大意: 长度为n的数组,可以任选两个数ai与aj用x和y替换前提是满足ai|aj = x|y。 解题思路: 将数在二进制下观察可以发现数组中所有的数OR起来后只要二进制数位上有1就无法将1全部消除掉,最少也要留下一个1。 假设数组的数(2进制)是[1111,1000,11,111],那么我们可以通过操作将数组变成[1111,0,0,0]但每一

梅子酒的博客 701

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Codeforces Round #772 (Div. 2)

传送门 Codeforces Round #772 (Div. 2) A 按位考虑,若存在第 kkk 位为 111 的元素,则可以用这个元素将其余元素的第 kkk 位变为 000;为满足操作的约束,存在 111 的每个数位至少需要保留一个元素。故最小和为所有元素的按位或。总时间复杂度 O(n)O(n)O(n)。 #include <bits/stdc++.h> using namespace std; #define pb push_back typedef long long ll; cons

neweryyy的博客 293

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Codeforces Round #772 (Div. 2)(ABCDE)

Codeforces Round #772 (Div. 2)(ABCDE) A. Min Or Sum 题意:给一个长度为n的序列,可以多次进行操作,每次选择不同的i,j,使得满足a[i]∣a[j]=x∣ya[i]|a[j]=x|ya[i]∣a[j]=x∣y,x、y任意,问最后序列的最小总和。 思路:因为可以一直或操作,a[i]∣a[j]=x∣ya[i]|a[j]=x|ya[i]∣a[j]=x∣y也可以看成为变化后a[i]+a[j]a[i]+a[j]a[i]+a[j]的值。所以我们只要看所有数在二进制下的

一只大菜鸡的博客 499

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Codeforces Round #772 (Div. 2) A B C D

Codeforces Round #772 (Div. 2) A B C D A. Min Or Sum 思路: 一眼题,最好的情况就是二进制形式下出现过的数字最多保留111位。全部∣|∣起来即可。 参考代码: #include<bits/stdc++.h> using namespace std; #define mp make_pair #define int long long #define re register int #define pb emplace_back #de

qq_53504307的博客 641

Codeforces Round #772 (Div. 2) 【复盘】

菜鸡-54,被自己蠢哭

CrySleeper的专栏 301

Codeforces Round #772 (Div. 2) A~F

前一段时间总是忙着学校的各种事情,好久没发过博客了,现在更新起来,从一场Codeforces的div2开始吧 A. Min Or Sum 题目大意 给你 nnn 个数记为 aia_iai​,你可以进行任意次数的操作,使得这 nnn 个数之和最小。 操作:选择两个不同的数 i,ji, ji,j ,以及两个非负整数 x,yx, yx,y,用 xxx 代替 aia_iai​,yyy 代替 aja_jaj​,且满足 ai∣aj=x∣ya_i | a_j = x|yai​∣aj​=x∣y 思路 看到 或 操作,容易想

yezi_coder的博客 511

Codeforces Round #772 (Div. 2) D Infinite Set

Codeforces Round #772 D Infinite Set 题目链接:D Infinite Set void solve(){ dp[0]=1;dp[1]=1LL; rep(i,2,200000){ dp[i]=(dp[i-1]+dp[i-2])%mod; } pre[0]=1; rep(i,1,200000) pre[i]=(pre[i-1]+dp[i])%mod; cin>>n>>p; rep(i,1,n) cin>>a[i];

Shy_sensei的博客 256

Codeforces Round #772 (Div. 2) ABC

Problem - A - Codeforces 题目大意:给定一个长度为n的数组a,我们可以选择两个不同的整数i,j(1≤i<j≤n),用x替换ai,用y替换aj(x和y是非负整数)。为了不破坏数组,必须保持ai | aj = x | y,其中|表示按位or运算。 请输出使用上述运算任意次后所能得到的数组的最小和。 input 4 3 1 3 2 5 1 2 4 8 16 2 6 6 3 3 5 6 output 3 31 6 7 从0开始依次进行或运算即可。 ..

qq_51376774的博客 241

Codeforces Round #772 (Div. 2) A - E

A. Min Or Sum 题意:       初始时有一个数组aaa,你可以进行一种操作:选择两个不同的下标iii和jjj,并且构造两个正整数xxx和yyy,使得x∣y=ai∣ajx|y = a_i | a_jx∣y=ai​∣aj​,然后用xxx替换掉原数组中的aia_iai​,yyy替换掉原数组中的aja_jaj​。       可以进行这样的操作任意次,询问进行完操作之后数组中剩余元

weixin_45925735的博客 477

Codeforces Round #772 (Div. 2) D

文章目录题目大意:解题思路AC代码: 题目大意: 给了n个不同的正整数序列a。定义了一个无限集合S,满足∀x∈S\forall x \in S∀x∈S,至少符号下列条件之一: ∃i,st:x=ai\exist i,st:x=a_i∃i,st:x=ai​ x=2∗y+1 && y∈Sx=2*y+1\, \&\& \,y\in Sx=2∗y+1&&y∈S x=4∗y && y∈Sx=4*y\,\&\&\,y\in Sx=4∗y&a

trouble_的博客 840
上一篇: Codeforces Round #777 (Div. 2) 简训
下一篇: Codeforces Round #771 (Div. 2)简训
C_eeking
博客等级 码龄7年 479粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值