HDU - 4466 Triangle

MSPM0G3507+逐飞库:5分钟搞定KEIL环境配置与LED闪烁(附常见错误解决) 本文详细介绍了如何使用MSPM0G3507微控制器和逐飞库快速配置KEIL开发环境,并实现LED闪烁功能。从芯片支持包安装、逐飞库工程配置到烧录调试,提供了完整的步骤和常见错误解决方案,帮助开发者5分钟内完成环境搭建。 阅读详情

题目:给你一根长度为n的铁丝,将铁丝分成几部分,再把每部分都折成三角形,并且每个三角形都相似,而且三角形的边长是整数。问有多少种分法。

三角形三遍相等视为相等,三角形顺序不同视为不同

思路:设三角形3边为a,b,c,并且a<=b<=c,

令dp[i]表示周长为i的三角形有多少个

考虑周长i:

如果b=c,那么c的最长是(i-1)/2,最短是(i+2)/3,那么新增加了(i-1)/2-(i+2)/3+1个三角形;


如果b<c,那么我们可以让c在周长为i-1的情况下增加1,那么就可以增加dp[i-1]个三角形,

注意,考虑现在的c,存在a+b=c的情况,这种情况要删去,i-1=a+b+c-1==>i=2*c,因此在i为偶数时要减去i/2/2


然后我们用筛法保证gcd(a,b,c)=1,然后就可以用插板的方法算分法数了,具体看代码

代码:

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<algorithm>
#include<ctime>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<numeric>
using namespace std;
#define LL long long
#define ULL unsigned long long
#define INF 0x3f3f3f3f
#define mm(a,b) memset(a,b,sizeof(a))
#define PP puts("*********************");
template<class T> T f_abs(T a){ return a > 0 ? a : -a; }
template<class T> T gcd(T a, T b){ return b ? gcd(b, a%b) : a; }
template<class T> T lcm(T a,T b){return a/gcd(a,b)*b;}
// 0x3f3f3f3f3f3f3f3f
// 0x3f3f3f3f

const LL MOD=1e9+7;
const int maxn=5e6+50;
int dp[maxn],num[maxn];
void init(int n){
    dp[3]=1;
    for(int i=4;i<=n;i++){
        dp[i]=dp[i-1]+(i-1)/2-(i+2)/3+1;
        if(i%2==0) dp[i]-=i/2/2;
        if(dp[i]>=MOD) dp[i]-=MOD;
        if(dp[i]<0) dp[i]+=MOD;
    }
    num[0]=1;
    num[1]=2;
    num[2]=4;
    for(int i=3;i<=n;i++){//使得gcd(a,b,c)=1,为插板做准备
        num[i]=num[i-1]*2;
        if(num[i]>=MOD) num[i]-=MOD;
        for(int j=2;j*i<=n;j++){
            dp[i*j]-=dp[i];
            if(dp[i*j]<0)
                dp[i*j]+=MOD;
        }
    }
}
int main(){

    int cas=0,n;
    init(maxn-50);
    while(~scanf("%d",&n)){
        LL ans=0;
        for(int i=1;i*i<=n;i++){
            if(n%i!=0) continue;
            ans=(ans+(LL)dp[i]*num[n/i-1]%MOD)%MOD;
            if(i*i!=n)
                ans=(ans+(LL)dp[n/i]*num[i-1]%MOD)%MOD;
        }
        printf("Case %d: %lld\n",++cas,ans);
    }
    return 0;
}


STM32驱动WS2812B实现音乐频谱可视化系统 本文详细介绍了基于STM32驱动WS2812B灯带实现音乐频谱可视化系统的设计与实现。通过FFT算法实时分析音频信号,将频谱映射到炫彩灯光控制系统,结合PWM和DMA技术实现低延迟响应。系统支持多模式切换和动态亮度调节,适用于创意灯光秀和智能家居场景。 阅读详情

相关推荐

DP链路训练从HPD触发到通道对齐:原理与调试实战

高速数字接口的稳定工作依赖物理层信号的精确协商,链路训练正是DisplayPort接口中确保源端与接收端在速率、摆幅和时序上达成一致的关键机制。HPD作为链路状态变化的触发信号,与通道对齐一同构成了训练流程的首尾环节。理解从时钟恢复到均衡再到多通道对齐的完整过程,有助于快速定位显示异常问题。在工程实践中,借助DPCD寄存器交互和AUX通道日志,可以系统性地排查训练失败原因。围绕链路训练全流程进行剖析,重点探讨HPD触发机制、训练图案选择、寄存器配置以及链路降级策略,为显示方案开发与调试提供工程参考。

weixin_30110543的博客 234

hdu-4466-Triangle 数学题

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4466 题目意思: 一根长为N的木棒,长度分成若干个三角形,使得任意两个三角形都相似。对应顺序三角形全部全等的为同一种分发,求总共有多少种分法。 解题思路: 数学题。 先考虑分成一个三角形的情况。 不妨设a 1、当b=c时,a至少为1,所以c 而ac>=n/3; 故共有(n-1)

cc_again的专栏 1595

针对中文CLIP模型训练失效的解决方案记录

解决了中文CLIP模型无法正确训练的问题

weixin_45906434的博客 1619

HDU 4466 Triangle(计数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4466 题意:给出一根长度为n的铁丝。将其分成若干段并将每段折成一个三角形,使得三角形都相似。有多少种分法? 思路:首先计算周长为M的三角形有多少个,设为f[M]。设三角形的三边a,b,c满足a&lt;=b&lt;=c,那么分两种情况: (1)b=c,此时c的上限为(M-1)/2,下限为cei...

weixin_33859665的博客 183

基于MySQL的京东用户行为分析

对京东用户行为的分析,利用AARRR模型进行分析。

SelenaSelena的博客 1908

红帽RHCE考试下午-RHCE (RH294)任务概览[2021最新版]

RH294任务概览 考试时间4个小时,6台虚拟机,15道题 原来通过脚本或者集群做的题现在都需要使用playbook实现 考试时大概有6台虚拟服务器,都已经做好了互相的免密 做题在ansible控制节点workstation做,但是需要去其他虚拟服务器进行验证 考试时需要将6台虚拟服务器在考试环境全部开启,物理机界面点击左侧按钮启动 考试时Ansible所有playbook都放在普通用户目录中且都以普通用户执行 注意:考试时一定注意要求将playbook放在哪个用户的家目录中,就需要用指定的户登录做题!

SunMy的博客 5615

hdu 4466 成都2012区域赛C题

#pragma comment(linker, "/STACK:102400000,102400000") #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #ifdef _

量子流逝 1365

如何理解Fourier Neural Operator (FNO)

2022年Nvidia发表在arXiv上的的FourcastNet作为几乎是最早的一篇气象大模型的工作(之前Google Research的MetNet主要还是对于降水的预报)。除了Transformer的backbone之外,使用到了2021年发表在ICLR上的Fourier Neural Operator。为了更好的理解模型的理论基础,可以详细学习一下以及他的前期工作GNOFNO作者对这两篇文章的解析blog。

momo的博客 1万+

HDU 4466 Triangle (边长a+b+c=M的三角形个数->且gcd(a,b,c)=1的三角形个数)

TriangleTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 627 Accepted Submission(s): 292Problem DescriptionYou have a piece of iron wire wi

可视化和机器学习 2046

SAP Joule for Consultants 与 Joule for Developers 全面解读

SAP推出面向不同用户群体的Joule AI助手:开发者版(Joule for Developers)专注于编码提效,嵌入开发工具链辅助生成、重构和测试代码;顾问版(Joule for Consultants)聚焦业务场景,集成SAP云应用知识库,为咨询项目提供方案设计、差距分析和实施指引。两者共享AI底座但功能侧重点不同:开发者版优化技术开发流程,顾问版加速项目交付周期。典型应用场景包括制造业云转型方案制定和ABAP代码迁移,分别展示了两版本在业务决策支持和技术实施中的价值。

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

13、基于RBF的自适应鲁棒控制与反步控制方法及实现

本文介绍了基于RBF神经网络的自适应鲁棒控制与反步控制方法,详细阐述了控制系统的程序结构、核心算法及实现流程。通过Simulink搭建仿真系统,利用RBF网络逼近系统中的不确定非线性函数,并结合Lyapunov稳定性理论设计控制律,实现了对倒立摆等复杂非线性系统的高精度跟踪控制。文章还提供了完整的MATLAB/Simulink代码示例和仿真结果分析,验证了该方法的有效性与鲁棒性,为实际工程应用提供了可行的技术路径。

ol789012的博客 87

hdu 4466 Triangle (数学)

终于做完了这道题,发一下自己的理解,踩踩~~ 题意:给你一个长度n的铁丝,将它弯成一个三角形,或者分成m段,每段组成一个三角形,要求这些三角形相似,问有多少种不同的方案数? 题解:      设f[x] 表示 三角形三边之和为x 的三角形的个数 ,a b c分别为三角形的三边,并且满足a         当b==c时:a=1时c取到最大值为maxx= [(x-1)/2], a=b=c时c取

gninixiaoan的专栏 615

华为OD机试双机位C卷-魔法收积木 (C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【魔法收积木】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为od - 魔法收积木。

qq_45776114的博客 1939

HDU 4466 Triangle

传送门 我们枚举x=a+b+cx=a+b+c,枚举aa,a<=b<=ca<=b<=c 把c=x−a−bc=x-a-b代入下面的不等式中,可以得到b的范围 a+b>ca+b>c a+c>ba+c>b b+c>ab+c>a 我们还要a,b,c互质,记上面的方案数为f(x) a,b,c互质的方案数为g(x) g(x)=f(x)−∑(g(y)y|x, y<xg(x) = f(x) - \su

long long ago 1065

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

hdu 4466 Triangle

对于长度为n的三角形的个数是靠打表找出来的规律,就不解释了。 然后这个三角形最大公约数为1,那么就可以用筛选法来做。 最后计算答案就o(n)扫描的计算,这个比较简单,不解释了。 #include #include #include using namespace std; const int maxn=5e6+111,mod=1e9+7,N=5e6; int sum[maxn],p

yrleep的专栏 1005

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

HDU4466 Triangle 计数 容斥原理

原文链接https://www.cnblogs.com/zhouzhendong/p/HDU4466.html 题目传送门 - HDU4466 题意   多组数据,每次询问一个数 $n(n\leq 5\times 10^6)$ 。   对于每一次询问,给出一根长度为n的铁丝。将其分成若干段并将每段折成一个三角形,使得三角形都相似。有多少种分法?   其中,注意一下原题中的样例解释:同一个...

weixin_30908941的博客 193

hdu4466 Triangle

Triangle Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 236    Accepted Submission(s): 121 Problem Description You have a piece o

习惯与规则决定命运 1206

HDU 4466 Triangle(12年成都)

转载请注明出处,谢谢http://blog.youkuaiyun.com/ACM_cxlove?viewmode=contents    by---cxlove  题目:给出长度为n的铁丝,将铁丝分为若干 部分,每个部分折成三角形,要求所有三角形相似。 三角形三边相等视为相等,三角形顺序不同视为不同 http://acm.hdu.edu.cn/showproblem.php?pid=44

窝不是爱酱,喵~~~~ 3054

HDU4466 Triangle

题意:给一个长为N的铁丝,问你有几种方法将其划分为若干段,使得每一段都能围成一个边长为整数的三角形,并且围成的三角形都相似 思路其实很明显,三角形的周长必定是N的约数,那么答案就是周长C能围城的三角形的数量*[N/C]的拆分数的和。问题是这两个东西怎么求。后者比较简单,打个表就能发现它是2的幂次。前者讨论三条边的关系后可以得出递归式:f[i]=f[i-2]+i/3-i/4。之后容斥一下即可...

weixin_30701521的博客 110

HDU4466_Triangle

今天比赛做的一个题目,不过今天终于感受到了复旦题目有多坑了。 题目的意思是给你一段长为n个单位长度的直线,你可以选择任意连续单位长度的线段组成三角形,可以组成任意你可以组成任意多个三角形,且要求其中所有的三角形相似。现在要你求出,总共有多少种三角形的情况。 详情见题目。 题目的意思明白了以后就可以开始思考具体怎么解题了。 比赛开始的时候我也很费解,到底怎么求出所有的排列组合的情况。...

weixin_30826761的博客 90

hdu 4466 Triangle dp+数学

分析 我们总共有n长的绳子,要求给绳子分段,每段都可以组成三角形,且所有三角形相似,三角形有顺序,问方案数 我们可以考虑一个F(x)F(x)F(x)为周长为x的三角形的个数 考虑三边a<=b<=ca<=b<=ca<=b<=c 如果b==cb==cb==c 我们可以知道c∈[x−12,⌈x3⌉]c\in[\frac{x-1}{2},\lceil\frac{x}{3...

three_trees的blog 162

hdu 4466 triangle 三角形统计 数学计数

题意:   统计长度为n的绳子,截成多个相似三角形,方案数 思路:   先整体看此题, 设定一个函数 g(x), 表示周长为x的本质三角形(a,b,c),其 gcd( a,b,c ) = 1, 的数量   则我们可以知道, 对于长度为 n 的铁丝, 能拆成 n/d 个长度为 d的 本质三角形, d个点,d-1个空隙, 因为可以 组合,这样得到的三角形两两相似, 方案数就是 g(d)...

weixin_30659829的博客 168
上一篇: CodeForces - 111D Petya and Coloring
下一篇: HDU - 4390 Number Sequence 容斥定理
我不会额
博客等级 码龄11年 2粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值