0
点赞
收藏
分享

微信扫一扫

leetcode刷题(三)——容斥原理

unadlib 2022-03-16 阅读 89

在这里插入图片描述

百度百科上容斥原理的解释:

公式
在这里插入图片描述

例题
在这里插入图片描述
算法分析在这里插入图片描述

//求最大公约数
#define ll long long 
int gad(int a,int b)
{
	return b==0?a:gad(b,a%b);
}
//求最小公倍数
ll lcm(int a,int b)
{
	return a*b/gad(a,b);
}
int getabc(int n,int a,int b,int c)
{
	ll num1=lcm(a,b);
	ll num2=lcm(b,c);
	ll num3=lcm(a,c)
	ll ans=n/a+n/b+n/c-n/lcm(a,b)-n/lcm(a,c)-n/lcm(b,c)+n/lcm(num1,lcm(num2,num3));
	return ans;
}

在这里插入图片描述

题目一在这里插入图片描述

题目链接

#define ll long long
ll gcd(int a,int b)
{
    return b==0? a:gcd(b,a % b);
}

ll lcm(int a, int b)
{
    return a / gcd(a,b) * b;
}

int MIN(ll a, ll b)
{
    return a < b? a: b;
}

int nthUglyNumber(int n, int a, int b, int c)
{
    ll num1 = lcm(a,b);
    ll num2 = lcm(b,c);
    ll num3 = lcm(a,c);
    ll num0 = lcm(num1,lcm(num2,num3));
    int min = MIN(a,MIN(b,c));
    ll left = min;
    ll right = min * n;
    ll mid = 0;
    while(left < right)
    {
        mid = (left + right) / 2;
        int sum = mid / a + mid / b + mid / c - mid /num1 - mid / num2 -mid / num3 + mid / num0;
        if(sum >= n)
            right = mid;
        else if(sum < n)
            left = mid + 1 ;
    }
    return right; 

题目二在这里插入图片描述

题目链接

class Solution {
public:
    int numMusicPlaylists(int n, int len, int dis) {
        int mod=1e9+7;
        long dp[101][101];
        memset(dp,0,sizeof(dp));
        dp[0][0]=1;
        //i为听过歌的数量
        //j为听了多少首歌
        //dis是歌曲间隔
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=len;j++)
            {
                dp[i][j]+=dp[i][j-1]*max(0,(i-dis));
                dp[i][j]+=dp[i-1][j-1]*(n-(i-1));
                dp[i][j]%=mod;
            }
        }
        return dp[n][len];
    }
};

在这里插入图片描述

总结

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于 java开发 的学习思路及方向。从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。

由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的 点击我的Gitee获取。
还有 高级java全套视频教程 java进阶架构师 视频+资料+代码+面试题!

全方面的java进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。

举报

相关推荐

0 条评论