UVA 1635 Irrelevant Elements

【数论】Irrelevant Elements, ACM/ICPC NEERC 2004, UVa1635 【组合数学】 #include using namespace std; int n,m,e[500],ec[500],v[100005],ans[100005]; int main() { ios::sync_with_stdio(false); while(cin>>n>>m){ memset(e,0,sizeof(e));memset(ec,0,sizeof(ec)); *v = 0,*an 阅读详情

这个题 需要优化。 否则会超时。 C(m,n) 只能算一半。 另一半 用 减法 直接减掉。


刘汝佳P321 的书上写的公式要看懂。


意思就是  要使系数 能整出 m  那么  这个系数的 唯一分解式的 指数 要 大于等于  m的 唯一分解式的 指数 


举个例子。   如果 二项式的 系数为 6 那么唯一分解式 2 的指数为 1  3的指数为1  m 如果为12  2 的指数为 2  3的指数为1  m的 2,3的指数 都大于6 的指数


所以一定可以整除。  还有一个问题。 如果  m很大的话 就输出0.  注意后面 多个空行 因为有0个元素 什么都不输出 一个空行。


#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <string>
#include <map>
#include <vector>
#include <set>
#include <queue>
#include <stack>
#include <cctype>
using namespace std;
#define ll long long
typedef unsigned long long ull;
#define maxn 100000+100
#define INF 1<<30
map <int, int> vis;
int s[maxn];
int m,n;
vector <int> q;
int res_m(){
    int x = m;
    for(int i = 2; i <= sqrt(x); i++){
        if(m == 1)
        break;
        if(m % i == 0){
            int tot = 0;
            while(m % i == 0){
                m /= i;
                tot++;
            }
            vis[i] = tot;
            q.push_back(i);
        }
    }
    if(m > 1){
        if(!vis.count(m)){
            q.push_back(m);
            vis[m] = 1;
        }
        else
            vis[m] = 1;
    }
}
int res(int k,int pan){
    int x = k;
    for(int j = 2; j <= sqrt(x); j++){
        if(k == 1)
        break;
        if(k % j == 0){
            int tot = 0;
            while(k % j == 0){
                k /= j;
                tot++;
            }
            s[j] += tot*pan;
        }
    }
    if(k > 1)
        s[k] += pan;
}
int main (){
    while(scanf("%d%d",&n,&m) != EOF){
        n --;
        memset(s,0,sizeof(s));
        q.clear();
        vis.clear();
        vector <int> path;
        res_m();
        if(q[q.size() - 1] >= 100000) {
            printf("0\n\n");
            continue;
        }
        res(n,1);
        int flag = 1;
        int len = q.size();
        for(int j = 0; j < len; j++){
            if(vis[q[j]] > s[q[j]]){
                flag = 0;
                break;
            }
        }
        set <int> biao;
        if(flag){
            path.push_back(2);
            biao.insert(2);
            if(!biao.count(n))
                path.push_back(n);
        }
        for(int i = 2; i <= n/2; i++){
            res(i,-1);
            res(n - i + 1,1);
            int flag = 1;
            for(int j = 0; j < len; j++){
                if(vis[q[j]] > s[q[j]]){
                    flag = 0;
                    break;
                }
            }
            if(flag){
                path.push_back(i+1);
                biao.insert(i+1);
                if(!biao.count(n-i+1))
                    path.push_back(n-i+1);
            }
        }
        sort(path.begin(),path.end());
        int len1 = path.size();
        printf("%d\n",len1);
        for(int i = 0; i < len1; i++){
            if(i == 0) printf("%d",path[i]);
            else printf(" %d",path[i]);
        }
        printf("\n");
    }
    return 0;
}


采用MPU6050的手势遥控器 随着社会的发展与进步,电子产品日益更新,个人家庭迎来了越来越多的智能家电。然而,现在的智能电子设备产品的遥控器多数都是按键形的。操作繁琐不直观,学习成本大。并且对于有老人小孩的家庭,给他们的操作带来了巨大的障碍。手势遥控器是指利用简单的手势来指挥电子设备,获得便捷的操作体验。让家庭成员都可以享受科技发展带来的福利。MPU6050是一个运动传感器,内置陀螺仪,再由电子设备利用判断结果做出相应的响应即... 阅读详情

相关推荐

知识图谱的数据挖掘与分析

1. 背景介绍 1.1 数据挖掘的崛起 随着互联网的普及和大数据技术的发展,数据挖掘已经成为了计算机科学领域的热门研究方向。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过计算机科学、统计学、信息论等多学科交叉的方法,挖掘出有用信息和知识的过程。数据挖掘的目标是从数据中发现有

AI天才研究院 1600

UVa 1635 Irrelevant Elements

这道题要求找出初始数组中不影响最终结果的"无关元素"。通过分析发现,问题等价于判断组合数C(n-1, i-1)是否能被m整除。解法首先对m进行质因数分解,然后利用勒让德公式计算每个组合数中各质因子的幂次。对于每个位置i,如果组合数C(n-1, i-1)包含m的所有质因子且幂次不低于m中的对应幂次,则该位置是无关元素。算法避免了直接计算大组合数,通过数论方法高效解决问题,时间复杂度为O(√m + n×r),其中r是m的质因子个数。

寂静山林 926

Vscode + QT + CMake:高效开发环境搭建全攻略

本文详细介绍了如何搭建Vscode+QT+CMake高效开发环境,涵盖环境安装、配置优化及项目创建全流程。通过整合Vscode的轻量化编辑、QT的跨平台GUI开发以及CMake的现代构建管理,该组合特别适合大型QT项目和跨平台开发团队,能显著提升开发效率。

weixin_30338481的博客 504

uva1635 Irrelevant Elements(唯一分解定理)

题目链接:点击打开链接 题意:给定n个数a1,a2····an,依次求出相邻两个数值和,将得到一个新数列,重复上述操作,最后结果将变为一个数,问这个数除以m的余数与那些数无关?例如n=3,m=2时,第一次得到a1+a2,a2+a3,在求和得到a1+2*a2+a3,它除以2的余数和a2无关。1= 解题思路: 1、首先我们可以发现对于给定的n其实每项的系数就是C(n-1,i-1),所以我

Crazy_Bear 2266

使用电荷放大器处理压电加速度计输出

电阻器 R p模拟传感器的绝缘电阻,为产生的电荷创建泄漏路径。在此图中,顶部波形显示传感器产生的电荷,而底部波形显示电荷放大器的输出。这需要具有大输入阻抗的放大级,以防止产生的电荷通过与传感元件并联的放大器的输入阻抗泄漏。换句话说,电荷放大器补偿传感器产生的电荷 q p ,反馈电容器 C F中具有相反极性的等量电荷。因此,任何与传感器并联的绝缘电阻,如电缆的绝缘电阻或传感器的漏电电阻Rp,都不能流过电流。漂移是指电荷放大器输出在一段时间内发生的变化,而不是由被测物理参数的变化(我们讨论的加速度)引起的。

weixin_45260069的博客 3905

运放实现阶梯波发生器-总结报告

实验目的: 学习、理解、掌握方波电路、限幅电路积分累加电路、反馈电路 课程条件: 电脑仿真软件Multisim 原理框图和实验思路: 方波电路通过微分电路可以形成正负脉冲,在通过限幅电路后变为单脉冲,最后在积分电路中形成阶梯波。微分电路存在的意义就是为了防止方波频率过大,从而导致在经过限幅电路的方波,在一个周期内将电容的电充满,这样就不会产生阶梯波。如果方波的频率比较小,可以近似认为是正负脉冲,这样就可以跳过微分电路。 ...............

0 1万+

UVa1635 Irrelevant Elements

Young cryptoanalyst Georgie is investigating different schemes of generating random integer numbers ranging from 0 to m - 1. He thinks that standard random number generators are not good enough, so he

Megumin的博客 664

基于多智能体架构的AI模拟法庭系统:律师案件预演的革命性工具

多智能体系统(Multi-Agent System)是人工智能领域的重要分支,它通过多个自主或半自主的智能体协同工作,模拟复杂的社会交互与决策过程。其核心原理在于分布式问题求解,每个智能体具备感知、推理和行动能力,通过通信与协作实现整体目标。在工程实践中,多智能体架构的价值在于能够模拟真实世界中的信息不对称与策略独立性,从而在复杂决策场景中提供更贴近现实的推演。这一技术正被应用于法律科技领域,通过构建物理隔离的智能体环境,模拟法庭对抗中的信息屏障与策略博弈。例如,在AI模拟法庭系统中,原告、被告、法官等角色

weixin_42561249的博客 394

Irrelevant Elements UVA - 1635

题意:对于给定的n个数a1,a2,...an,依次求出相邻两数之和,将得到一个新数列。重复上述操作时,最后结果将变成一个数。问这个数除以m的余数与那些数无关? 思路:1.在一般情况下,最后ai的系数是C(i - 1,n - 1)。这样问题就变成了C(0,n -1),C(1,n - 1),...C(n -1 ,n - 1)那些是m的倍数,可以用C(n,k) = C(k - 1,n) * (n - ...

沐妖的博客 281

图解电动汽车:电动汽车电控系统

电动汽车的电控系统通常包含三个子控制系统 —— 整车控制器、电池管理系统、驱动电机控制器。 整车控制器 VCU 整车控制器 VCU(Vehicle Control Unit)作为电动汽车的中央控制单元,是整个控制系统的核心,也是各个子系统的调控中心。VCU 的主要功能就是协调管理整车的运行状态,包括采集电机及电池状态,采集加速踏板信号、制动踏板信号、执行器及传感器信号,根据驾驶员的意图综合分析做出相应判定后,监控下层的各部件控制器的动作,它负责汽车的正常行驶、制动能量回馈、整车发动机及动力电池的能量管理、.

程序员「阿基米东」的编程之旅 1万+

番外篇 | 复现HIC-YOLOv5,助力小目标物体的检测

在本文中提出了一种改进的YOLOv5算法:HIC-YOLOv5,用于小目标检测,具有更好的性能和较低的计算成本。🌈

小哥谈 1130

UVA 1635 Irrelevant Elements [唯一分解定理]

Irrelevant Elements 唯一分解定理

C'est la vie. 598

用 YOLOv11‑Seg 做工地实例分割:从 0 起步到效果调优,真香!

这不是一篇“官方文档翻译”,而是一篇。

weixin_43199439的博客 776

Irrelevant Elements UVA - 1635 无关的元素

对于给定的n个数a1, a2, … , an,依次求出相邻两数之和,将得到一个新数列。重复上述操作,最后结果将变成一个数。问这个数除以m的余数与哪些数无关?例如n=3,m=2时,第一次求和得到a1+a2,a2+a3,再求和得到a1+2a2+a3,它除以2的余数和a2无关。1≤n≤105,2≤m≤109。 【分析】 显然最后的求和式是a1,a2, … , an的线性组合。设ai的系数为f(i),则...

Nicolas的博客 466

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

UVA 1635 Irrelevant Elements

贴不上题目  直接上代码 #include #include #include using namespace std; const int maxx=100007; int bad[maxx]; void E(int m,vector &prime) { int k=m; for(int i=2;i*i<=m;i++) { if(m%i==0)

qq_29055721的博客 298

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

UVA 1635 Irrelevant Elements

看到一个很大的数字的什么什么的余数就要想到唯一分解定律 #include #include #include #include #include #include using namespace std; void Getprimes(int n,vector& p) { int m=sqrt(n+0.5); for(int i=2;i<=m;i++) { if(n%i==0) {

BRCOCOLI的博客 306

UVA 1635 Irrelevant Elements

https://vjudge.net/problem/UVA-1635 题意:n个数,每相邻两个求和,最后变成1个数,问这个数除m的余数与第几个数无关 n个数使用次数分别为C(n-1,i) i∈[0,n-1] 对m分解质因数 同行内递推C(n-1,i), 累计答案的时候,只考虑C(n-1,i)分解质因数的结果 能否 将m的质因数 抵消 #include<c...

weixin_33743661的博客 112

UVA - 1635 Irrelevant Elements

题目传送门 #include <iostream> #include <stdio.h> #include <string> #include <string.h> #include <algorithm> #define MAXN 110 using namespace std; int fac[MAXN][2]; int fac_...

qq_15556277的博客 186

UVA1635 Irrelevant Elements —— 唯一分解定理 + 二项式定理

题目链接:https://vjudge.net/problem/UVA-1635 题解: …… 代码如下: #include #include #include #include #include #include #include #include #include #include #include #include using namespac

A man can be destroyed, but not defeated. 413
上一篇: UVA 11346 - Probability(概率)
下一篇: UVA 10288 - Coupons
Shimmer_
博客等级 码龄12年 28粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值