Codeforces Round #589 div.2 C,D

2023-05-16

感觉这一场的复杂度非常的玄学... 也可能是我偷懒太长时间变菜了QAQ.

C

  • 题意: 给出\(x,n\),求x质因子的从1到n的g(i,p)的连乘
  • 思路: 求出x的每个质因子,直接连乘到n计算即可.
#include<bits/stdc++.h>
#define ll long long
using namespace std;
typedef pair<int,int> pii;
typedef vector<int> VI;
vector<int> prime;
const int MOD = 1e9+7;
void get(ll x){
    for(int i=2;i*i<=x;++i){
        if(x%i==0){
            prime.push_back(i);
            while(x%i==0)   x/=i;
        }
    }
    if(x!=1)   prime.push_back(x);
}
ll qpow(ll a,ll b){
    ll res =1;
    while(b){
        if(b&1) res = res*a%MOD;
        a = a*a%MOD;
        b>>=1;
    }
    return res;
}
const int N = 1e5+10;
int cnt[N];
int main(){
    ll x,n;
    ll ans = 1;
    cin >> x >> n;
    get(x);
    for(auto p:prime){
        ll res = 1;
        while(res<=n/p){
            res*=p;
            ans = ans * qpow(p,n/res)%MOD;  // 不是res的n/res次方 而是 p的n/res次方 这样可以避免乘过之后影响前面
        }
    }
    ll t = (ll)ans;
    cout << t << endl;
}

比赛时一直在想怎么容斥,让p乘过以后不会影响到前面,但看别人代码发现并不需要容斥,直接还用p做底就可以

D

  • 题意: 给出一个图,让你把这个图三分(类比二分图).
  • 思路: 暴力分,但分完要检查条件. 1.随便选一个没被染色的点u染色,若v与u没有边,且v没被染色过,则将v染成u的颜色.
    2.重复1 三次. 3.判断所有点都被染色,且三种颜色都存在. 4.判断m(边数) == |col1|*|col2|+|col1|* |col3| + |col2|*|col3|,因为不同集合直接每个点都要存在边. 5.判断不同集合的两个点是否存在边
#include<bits/stdc++.h>
#define ll long long
using namespace std;
typedef pair<int,int> pii;
typedef vector<int> VI;

const int N = 1e5+10;
vector<int> G[N];
int head[N],tot;
int cnt[4];
vector<int> block[4];
int color[N];
void add(int u,int v){G[u].push_back(v);}
int n,m;
int main(){
    scanf("%d%d",&n,&m);
    int u,v;
    for(int i=1;i<=m;++i){
        scanf("%d%d",&u,&v);
        add(u,v);
        add(v,u);
    }
    for(int col = 1;col<=3;++col){
        int idx = 0;
        for(int i=1;i<=n;++i)   if(color[i]==0){idx = i;break;}
        if(idx ==0){
            color[1] = 0;   break;
        }
        color[idx] = col;
        for(auto v:G[idx]){
            if(!color[v])   color[v] = -1;
        }
        for(int i=1;i<=n;++i){
            if(color[i]==0) color[i] = col;
            if(color[i]==-1)    color[i] = 0;
        }
    }
    for(int i=1;i<=n;++i){
        cnt[color[i]]++;
        block[color[i]].push_back(i);
    }
    int sign = 0;
    if(cnt[0] || !cnt[1] || !cnt[2] || !cnt[3] || m!= cnt[1]*cnt[2] + cnt[2]*cnt[3] + cnt[1]*cnt[3]){
        sign = 1;
    }
    for(auto u:block[1]){
        sort(G[u].begin(),G[u].end());
        for(auto v:block[2]){
            auto it = lower_bound(G[u].begin(),G[u].end(),v);
            if(it == G[u].end() || *it!=v) sign = 1;
        }
        for(auto v:block[3]){
            auto it = lower_bound(G[u].begin(),G[u].end(),v);
            if(it == G[u].end() || *it!=v) sign = 1;
        }
    }
    for(auto u:block[2]){
        sort(G[u].begin(),G[u].end());
        for(auto v:block[3]){
            auto it = lower_bound(G[u].begin(),G[u].end(),v);
            if(it == G[u].end() || *it!=v) sign = 1;
        }
    }
    if(sign){
        puts("-1");
        return 0 ;
    }
    for(int i=1;i<=n;++i){
        printf("%d ",color[i]);
    }
    puts("");
    return 0;
}

感觉4和5的判断是重复的,而且判断5居然不超时

转载于:https://www.cnblogs.com/xxrlz/p/11612329.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Codeforces Round #589 div.2 C,D 的相关文章

随机推荐

  • NSAttributedStringKey

    NSFontAttributeName 字体 xff0c value是 UIFont 对象 NSParagraphStyleAttributeName 绘图的风格 xff08 居中 xff0c 换行模式 xff0c 间距等诸多风格 xff0
  • Linux Ubuntu 自动登录

    我一直在用Ubuntu发型版本的Linux系统 xff0c 很喜欢把它做得更加的方便易用 xff0c 特别是Ubuntu的Server版本 xff0c 因为没有Desktop的 GUI界面 xff0c 也没有自动登录设置 xff0c 无法通
  • Archlinux/Manjaro使用笔记-安装配置搜狗输入法步骤

    一 安装qtwebkit bin软件包解决qtwebkit无法编译安装问题 aurman S qtwebkit bin 二 安装fcitx xff0c fcitx im xff0c fcitx configtool包 pacman S fc
  • GNOME 3.28 启用桌面图标

    原由 GNOME 3 28合并了移除桌面图标支持 Nautilus从此不在支持桌面图标 xff0c 直到找到新的解决方案 Issues地址 xff1a https gitlab gnome org GNOME nautilus issues
  • session和cookie的区别

    1 xff0c session 在服务器端 xff0c cookie 在客户端 xff08 浏览器 xff09 2 xff0c session 默认被存在在服务器的一个文件里 xff08 不是内存 xff09 3 xff0c session
  • Spring常用配置

    上篇文章我们简单介绍了Spring的基本配置 xff0c 算是一个简单的入门 xff0c 这篇文章我们再一起来看看Spring在使用的过程中一些其他的常见配置 Bean的Scope Spring中的Scope注解主要是为了解决Bean的实例
  • iOS开发网络篇 —— OC加载HTML代码

    html代码 图1 样式一 xff1a 34 lt p gt lt img src 61 34 upload image 20170609 1496978712941664 jpg 34 title 61 34 14969787129416
  • Python 安装与环境变量配置

    一 软件下载 Python安装包下载地址 xff1a https www python org 二 安装过程 xff08 略 xff09 三 环境变量配置 xff1a 方法一 xff1a 使用cmd命令添加path环境变量 在cmd下输入
  • USB串口导致鼠标乱跳

    近期在工控机上安装USB串口 xff0c 结果装上没几天 xff0c 就有反馈开机后鼠标乱跳 然后 xff0c 开始解决问题 环境 xff1a 工控机操作系统Windows 7专业版 xff0c USB串口Z TEK USB RS232 1
  • Minimum Depth of Binary Tree 二叉树的最小深度

    Given a binary tree find its minimum depth The minimum depth is the number of nodes along the shortest path from the roo
  • 【Android Studio】成功解决 “gradle project sync failed”

    更新Android Studio后报错 xff1a gradle project sync failed Basic functionality e g editing debugging will not work properly 网上
  • 我失败的程序员生涯

    我 xff0c 一个普普通通的人 普通本科毕业 xff0c 来到北京成为了一个普通的程序员 2013年 xff0c 我本科毕业 xff0c 然后就踏上了北漂的征程 来之前想的很清楚 北京技术发达先进 我可以在这里工作三四年 xff0c 学习
  • gdb+gdbserver远程串行协议[zz]

    转载地址 xff1a http blog sina com cn s blog 71ed04f70100qhxc html gdbserver debug remote debug mount hello Usage gdbserver O
  • python 远程关机_python实现微信远程电脑关机完整源码

    这是python实现微信远程电脑关机完整源码下载 xff0c 通过手机微信发送QQ邮件给sina邮箱 xff0c 然后利用python的pop3定时检查sina邮箱的邮件主题以及邮件来源 xff0c 并在电脑执行相应的命令行实现关机 软件介
  • html设计思路,网页设计思路7个方法

    网页设计思路7个方法 网页设计除了要设计的漂亮 xff0c 体验优秀 xff0c 还要让用户对网站难以忘怀 xff0c 这就需要设计师进行深入的思考 xff0c 通过更加走心的设计 xff0c 来抓住用户的心 毕竟没有哪个站长不想让自己的网
  • 安卓网络类型设置的实现

    工作背景 xff1a 公司出口国外某国的设备 xff0c 因为该国对4G认证要求较高 xff0c 流程非常麻烦 xff0c 客户不想取得4G方面认证 xff0c 因此订单机器设备需禁用4G xff0c 且不能手动恢复4G xff0c 默认3
  • 硬件虚拟化

    硬件虚拟化也称作完全虚拟化 在计算机科学中 xff0c 硬件虚拟化 xff08 英语 xff1a Hardware virtualization xff09 是一种对计算机或操作系统的虚拟 虚拟化对用户隐藏了真实的计算机硬件 xff0c 表
  • 计算机语言怎么学才学得好,如何正确开始学习计算机编程语言?

    原标题 xff1a 如何正确开始学习计算机编程语言 xff1f 俗话说 xff0c 好的的开始是成功的一半 学习编程语言任重而道远 xff0c 如何准备学习是一个很关键的问题 今天小助手给大家分享如何开始学习编程语言的建议 xff0c 希望
  • html中如何传递数组,如何将数组从select html元素组件传递到数组中具有不同值的两个文本组件...

    我正在尝试在选择值之后从select元素中获取价格值 例如股票描述 数字发票QT 售价 100 但是我已经写了下面的代码 当我运行它时 我会得到这个错误 销售价格返回 未定义 所以我非常感谢你能帮我 因为我整天都在上网寻找帮助 import
  • Codeforces Round #589 div.2 C,D

    感觉这一场的复杂度非常的玄学 也可能是我偷懒太长时间变菜了QAQ C 题意 给出 x n 求x质因子的从1到n的g i p 的连乘思路 求出x的每个质因子 直接连乘到n计算即可 code include lt bits stdc 43 43