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;
}
Sobel原理及计算过程详解 该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。首先,我们需要构建一个Sobel算子,通常是一个 3x3 的矩阵。Sobel算子可以分别计算水平和垂直方向的梯度值,然后将两者合并得到总梯度值。索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度近似值。所以,我们假设选择图像矩阵中的点A(1, 1),即第二行第二列的元素,对应的。接下来,我们将使用Sobel算子计算这个点的梯度值。 阅读详情

相关推荐

工程师必看:如何用定时截尾试验快速验证产品MTBF(附真实案例解析)

本文为硬件工程师详细解析了如何运用定时截尾试验快速验证产品MTBF(平均无故障工作时间)。通过七步实战法,结合工业物联网网关的真实案例,阐述了从参数设定、试验执行到结果判读的完整流程,并提供了MATLAB脚本实现自动化计算与可视化,帮助工程师在有限时间内科学评估产品可靠性。

weixin_29243063的博客 494

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

声发射传感器的工作原理是什么?

介绍声发射传感器的工作原理。

qq_39948394的博客 9246

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

TCGA之GDC-client工具下载安装与使用

文章主要是对GDC-client工具下载TCGA数据库数据整个过程的一个记录 1.下载GDC-client工具 GDC-client工具网址:GDC Data Transfer Tool | NCI Genomic Data Commons (cancer.gov) 我这里下的是上图中红圈中的版本, 2.解压安装 从网上了解的是不能解压到带中文的路径里,解压后是一个.exe文件,为了能直接在cmd命令行下使用,将其加入系统环境: 点击新建之后,输入将文件解压到的路径,然后...

better_strong的博客 1万+

GEE聚类分析:基于sentinel-2 影像进行 K-Means 聚类分析

这篇博客介绍了如何使用 Google Earth Engine (GEE) 进行 K-Means 聚类分析,以识别感兴趣区域(ROI)内的不同地表覆盖类型。文章详细说明了从定义用户参数、准备参考区域、加载和预处理 Sentinel-2 图像,到训练 K-Means 聚类器并对图像进行聚类的完整流程。代码示例展示了如何设置参数、采样像素数据、训练聚类器,并将结果可视化。最后,还提供了将聚类结果导出到 Google Drive 的选项。通过该教程,用户可以掌握在 GEE 平台上进行地理数据聚类分析的基本方法。

此星光明博客 263

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

异常数据(outlier data)处理基于分位数法(箱图法、箱型法)替换及删除方案

异常数据(outlier data)处理基于分位数法(箱图法、箱型法)替换及删除方案 简单统计法: 这个原则有个条件:数据需要服从正态分布。 在3倍标准差原则下,异常值如超过3倍标准差,那么可以将其视为异常值。正负3的概率是99.7%,那么距离平均值3之外的值出现的概率为P(|x-u| > 3) <= 0.003,属于极个别的小概率事件。如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。 分位数法(箱图法、箱型法): 并不是说从高斯分布中抽出的所有数据都符..

data+scenario+science+insight 1795

【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

宽压 DC⇌DC 也能“随心所欲”——全桥 LLC 混合控制硬核拆解

硬件派 vs. 软件派:多电平是“器件堆砌”,混合控制是“算法魔改”。预算紧 → 先搞软件。仿真别嫌烦:PLECS 把两条曲线扫透,切换点、死区、φ 都调到波形平滑再上板。温升留 20 ℃ 余量:车规≥125 ℃,实验室测 105 ℃ 就算危险,别玩极限。

weixin_43199439的博客 926

【LAMMPS学习】五、LAMMPS命令(1) LAMMPS 输入脚本

本部分描述了 LAMMPS 输入脚本的格式以及其中的命令如何用于定义 LAMMPS 模拟。主要包括以下内容。

荷塘阅色 2644

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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

简略的解题报告。

TRiddle的博客 541

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

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

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

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、付费专栏及课程。

余额充值