Codeforces VK Cup 2017 - Round 2

【解题报告】Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) 简略的解题报告。 阅读详情

A. Voltage Keepsake

二分答案。

B. Volatile Kite

把问题转换为求每个点到相邻2点组成的线段的距离。

C. Vulnerable Kerbals

这题有点意思。我们可以推出这样的结论,当前缀的积(mod m)与m互质时,添加一个数,前缀积可以转换为所有数;但是当前缀的积(mod m)与m的最大公约数为gcd时,添加一个数,只能转换为gcd的倍数。所以策略是先转化为与m的最大公约数小的,再转化为大的。。可以dfs求一下转化顺序,然后利用逆元来转化。

#include <bits/stdc++.h>

using namespace std;

#define ll long long

const int maxn = 200010;
int mod;  

void ExEuclid(ll a,ll b,ll &x,ll &y,ll &q){      
    if(b==0){      
        x=1;y=0;q=a;      
        return;      
    }      
    ExEuclid(b,a%b,y,x,q);
    y-=x*(a/b);      
}      

ll inv(ll num){
    ll x,y,q;      
    ExEuclid(num,mod,x,y,q);      
    return (x+mod)%mod;  
}

int n,m;
vector<int> res;
bool vis[maxn];
int dp[maxn];
int nxFac[maxn];
vector<int> fac;

int dfs(int mm){
    if(dp[mm] != -1){
        return dp[mm];
    }
    int div = m / mm;

    int ans = 0;
    for(int i=1;i<mm;i++){
        if(!vis[i*div] && (__gcd(i,mm) == 1) ){
            ans ++;
        }
    }

    int mx = 0;
    int mxnum = 0;
    for(int i=2;i<mm;i++){
        if(mm % i == 0){
            int tmp = dfs(mm/i);
            if(tmp > mx){
                mx = tmp;
                mxnum = i;
            }
        }
    }
    ans += mx;
    dp[mm] = ans;
    nxFac[mm] = mxnum;
    return ans;
}

int main(){
    memset(dp,-1,sizeof(dp));
    cin>>n>>m;

    if(m==0){
        cout<<0<<endl;
        return 0;
    }

    mod = m;

    for(int i=0;i<n;i++){
        int a;
        scanf("%d",&a);
        vis[a] = 1;
    }

    dfs(m);

    int div = 1;

    int mm = m;
    fac.push_back(1);
    while(nxFac[mm]){
        fac.push_back(nxFac[mm]);
        mm /= nxFac[mm];
    }

    if(mm!=1){
        fac.push_back(mm);
    }

    int tmp = m;

    vector<int> order;
    vector<int> divs;
    divs.push_back(1);
    for(int x : fac){
        tmp /= x;
        div *= x;
        for(int i=1;i<=tmp;i++){
            int id = i*div;
            if(id == m){
                id = 0;
            }
            if(!vis[id] && __gcd(i,tmp)==1){
                order.push_back(id);
                divs.push_back(div);
                vis[id] = 1;
            }
        }
    }

    ll prod = 1;

    for(int i=0;i<(int)order.size();i++){
        assert(i!=m);

        prod /= divs[i];
        order[i] /= divs[i];
        mod /= divs[i];

        ll ans = (ll)order[i]*inv(prod);
        ans %= mod;

        mod *= divs[i];
        prod *= divs[i];

        prod *= ans;
        prod %= mod;

        res.push_back(ans);
    }

    cout<<res.size()<<endl;
    for(int x:res){
        printf("%d ",x);
    }

    return 0;
}
在Cursor IDE中集成Datadog监控:自然语言查询实战指南 在云原生和微服务架构中,可观测性(Observability)已成为保障系统稳定性的核心技术支柱。其核心原理是通过日志(Logs)、指标(Metrics)和追踪(Traces)三大支柱,实时采集并呈现系统的运行状态。这项技术的价值在于,它让开发者能够透视复杂的分布式系统,快速定位性能瓶颈与故障根因。在实际的工程实践中,开发人员常常需要在编码环境与监控平台之间频繁切换,这种上下文切换严重影响了排障效率。本文聚焦于如何利用Model Context Protocol(MCP),将强大的Datadog可观测性平台 阅读详情

相关推荐

GitHub 镜像站点

国内访问 GitHub 有时会遇到速度慢或不稳定的情况,这时 GitHub 镜像站点就能帮上忙。它们通过代理或缓存机制,让你更顺畅地浏览仓库、下载资源甚至克隆代码。希望这些信息能帮你更顺畅地访问 GitHub 资源。下面表格汇总了一些常见的镜像站及其主要用途。

BillKu的博客 6万+

Codeforces - 772C - Vulnerable Kerbals(同余 + 建图 + 拓扑排序)

题目链接:https://codeforces.com/problemset/problem/772/C 13.1 题意 给定一个整数 m(1≤m≤2⋅105)m(1 \le m \le 2 \cdot 10^5)m(1≤m≤2⋅105),和 n(0≤n<m)n(0 \le n < m)n(0≤n<m) 个整数。 现在需要构造出一种满足以下要求的序列: 每个元素都在 [0,m−...

Nitrogens的博客 512

HAL库移植实战:解决‘HAL_StatusTypeDef‘未定义报错的3个关键步骤

本文针对STM32开发中从标准库向HAL库移植时常见的'HAL_StatusTypeDef'未定义报错,提供了三个关键解决步骤:首先确保正确包含头文件入口,其次检查并配置模块使能宏,最后注意避免与标准库的同名结构体混用。文章通过实战案例解析了HAL库的模块化设计理念,帮助开发者高效解决混合编程中的编译问题。

book8的博客 207

CodeForces 772C. Vulnerable Kerbals

You are given an integer m, and a list of n distinct integers between 0 and m - 1. You would like to construct a sequence satisfying the properties: Each element is an integer between 0 and m 

wxh010910 1897

S32K144驱动TPS929120避坑实录:从原理图设计到PWM调光漏电流的完整解决流程

本文详细解析了S32K144驱动TPS929120在车规LED驱动中的常见问题与解决方案,重点解决了PWM调光漏电流的行业难题。从原理图设计、FlexWire通信到软件调试,提供了一套完整的工程化避坑指南,特别针对车规MCU应用中的温度漂移、地址冲突等痛点给出了实用建议。

weixin_30872157的博客 561

掌握RDMA核心:从同步构建到异步事件的连接艺术

本文深入解析RDMA编程中的双模式设计,揭示同步配置与异步事件机制的协作关系。第一部分阐述同步函数rdma_bind_addr和rdma_listen的本地化角色,强调它们仅完成本地端点配置。第二部分剖析异步事件模型,重点分析连接请求和建立事件的处理流程。通过完整生命周期序列图展示两种模式的交互过程,并提供错误处理、资源管理和性能调优的实用建议。文章指出,理解同步本地配置与异步网络响应这一责任划分,是掌握RDMA编程的关键所在。

数字人生 282

Codeforces Round #409 (rated, Div. 1, based on VK Cup 2017 Round 2) C. Vulnerable Kerbals

题意 在模m的意义下,ban掉n个数。构造一个最长的数列,使得: 1、前缀之积两两不等 2、前缀之积不能出现n个被ban的值 n&lt; m&lt;=200000 题解 一开始往数论构造的方向想。。 发现完全不会 看了一眼路牌,居然是图论。。 看来现在做题的感觉太差了。。方向都没对。。要赶快恢复起来 知道了是图论就好办了 考虑暴力 如果iii可以通过乘上一个数到j...

OZY的博客 239

从模糊到清晰:让AI教相机自动对焦的实战指南

AI自动对焦技术:让模糊照片成为过去式 深度学习驱动的自动对焦技术正颠覆传统摄影,使相机能在复杂场景下智能锁定焦点。相比传统对焦方法在弱光、低对比度环境下的失效,AI通过学习"清晰-模糊"规律,实现全场景精准对焦。本文详细解析了该技术的三大优势: 自适应各种光线条件; 毫秒级对焦速度; 突破物理限制的精度。 通过PyTorch搭建的CNN模型,展示了从数据采集到模型训练的全流程实战方案,包括使用拉普拉斯算子评估图像清晰度等关键技术。该技术已成功应用于手机摄影、工业检测、无人机航拍和安防监

LXY_LOVE36的博客 347

【Codeforces 801E】 Vulnerable Kerbals 【gcd+dag+最长路】

题意:给出m和n个在[0,m)的数字,要求构造一个最长的序列满足1.序列中的数位[0,m)2.序列的前缀积对m取模后不能重复3.序列的前缀积对m取模后不能与n个数字相同题解:考虑前缀积为x,下一个数取a,x*a%m=y,则gcd(y,m)必然是gcd(x,m)的倍数,那么我们构造出序列后的前缀积取模序列是一个递增序列,且后面数必然是前面数的倍数构造一个以前缀积取模后的值为点的图,把可以取的前缀积积...

sjtsjt709的博客 668

从 SM59 到 SPROXY,打通 ABAP 后端与 ES Repository 的代理生成链路

本文探讨了在SAP PI/PO项目中配置ABAP后端系统与ES Repository连接的关键步骤,重点解决ABAP Proxy生成时无法获取接口模型的问题。文章指出: 该配置本质是建立设计时通道,使ABAP系统能通过SPROXY访问ES Repository中的接口模型并生成代理类 配置核心是在SM59创建名为SAP_PROXY_ESR的HTTP连接(类型G),需确保: 目标路径为/rep 使用具备SAP_XI_IS_SERV_USER角色的服务账号 连接测试通过后仍需在SPROXY中验证完整功能 常见陷

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 60

MALTAB程序利用质心法去寻峰

质心法的优点是简单易实现且计算速度快,适用于数据点较少或峰值较明显的情况。然而,对于复杂的数据或多峰曲线,质心法可能无法准确识别所有峰值,因此在这些情况下可能需要使用更复杂的峰值检测算法。质心法(Centroid Method)是一种寻找峰值的方法,其基本原理是通过计算数据窗口内的质心位置来确定峰值的位置。质心是指在一维数据中,按照数据的幅值对位置进行加权平均的结果,即质心位置为数据幅值加权平均值的位置。变量定义了计算质心的窗口大小。最后,绘制了找到的峰值位置和幅值点,并显示了找到的峰值位置和幅值的结果。

走向CTO的路上... 1345

Codeforces 801E Vulnerable Kerbals(缩点/DAG上最长路/exgcd)

题目链接 大概意思是说,构造一段最长的序列,满足前缀乘积%m不等于N个数中的任意一个。 不妨想一想现在是前缀乘积X,走到下一步X*Q%m=b 有解是什么性质。再缩点转化为DAG上最长路dp一下,构造答案exgcd即可,答案均在M以内。 #include<cstdio> #include<vector> #include<cstring> #include<algorithm> using namespace std; const int N=2e5+10;.

weixin_45948940的博客 216

倍福CX9020(WINCE 7)控制器使用方法和操作

CX9020系列是倍福控制器中较为经济的,操作系统为Windows Embedded Compact 7(简称WINCE7或WINEC7),相对高端控制器(WINES7以上系统),操作系统古老而简洁,上位机软件的编写困难很多,本文是笔者在使用过程中摸索的流程,旨在为CX9020系列的新用户提供参考,也可供其他CE系统的控制器参考。本文中大部分截图采用倍福中国的培训文档,这是由于笔者是在流程走通后再写这篇文章,不想再恢复出厂设置走一遍截图。因笔者在写这篇文章时使用倍福控制器经验并不丰富,难免有纰漏,请读者批评

weixin_41883890的博客 4287

【解题报告】Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2)

简略的解题报告。

TRiddle的博客 541

jre9下载 jdk9

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

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Codeforces Round#409/VK-Cup 2017 Round2

来自FallDream的博客,未经允许,请勿转载,谢谢。 和ditoly组队打VK-Cup,起了个名字叫Vegetable Chicken(意思显然),然后昨天我做AB他切C 很不幸的是.....我写的两题都挂了......坑队友了...A被疯狂卡精度 B简单计算几何瞎写挂了 GG 滚去外卡赛 A.Voltage Keepsake 你有n个东西,每个东西每秒钟消耗ai的能源,初始有...

weixin_30776545的博客 118

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2)

Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) link http://codeforces.com/contest/801A Vicious

chutzpah 351

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) 菜鸡只会ABC!

Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1)                                                            全场题解    菜鸡只会A+B+C,呈上题解:                                    

NYIST_TC_LYQ的博客 825

Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) A -- D

A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Tonio has a keyboard with only two lett

Gerry99的博客 832

Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) E

Description Bear Limak prepares problems for a programming competition. Of course, it would be unprofessional to mention the sponsor name in the statement. Limak takes it seriously and he is g...

219

Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1)

A #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define mst(Ar

傻傻分不清、 587

深夜切题——Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2)

A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Tonio has a keyboard with only two lett

GSilang's blog 5888

Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3) C

C. Success Rate time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are an experienced Codeforces user. Tod

Joky_2002的博客 420

Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) D

Description A tree is an undirected connected graph without cycles. The distance between two vertices is the number of edges in a simple path between them. Limak is a little polar bear. He li...

169

Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) A

Description Bear Limak wants to become the largest of bears, or at least to become larger than his brother Bob. Right now, Limak and Bob weighaandbrespectively. It's guaranteed that Limak...

144
上一篇: Codeforces problem 750E New Year and Old Subsequence
下一篇: CF 793D Presents in Bankopolis
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值