hdu 1220 Cube(组合) + 2069 Coin Change(背包) + 2074 叠筐

本文精选了三道算法竞赛题目,包括立方体单位对计数、硬币兑换方法的求解以及叠筐图案生成,详细解析了每道题目的题意、解题思路及代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【题目】

hdu 1220 Cube

【题意】

给定一个立方体的边长n,输出有多少对单位立方体有不超过两个公共点。

【思路】

总共有n*n*n个单位立方体,有(n*n*n)*(n*n*n-1)/2对单位立方体。单位立方体之间可能情况有0,1,2,4个公共点,我们只需要减去4个公共点的单位立方体对即可。拥有4个公共点的两个单位立方体,我们从一个面入手,一列有n-1对,一个面有n*n列,即一个面有(n-1)*n*n对,三个面就是3*(n-1)*n*n。

【代码】

main()
{
    int n;
    while(~scanf("%d",&n))
    {
        int ans=n*n*n*(n*n*n-1)/2-3*(n-1)*n*n;
        printf("%d\n",ans);
    }
}

【题目】

hdu 2069 Coin Change

【题意】

给定数额n,硬币面额有1,5,10,25,50,输出总共有多少种硬币兑换数额n的方法,硬币数不超过100。

【思路】

背包。

【代码】

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <stack>
#include <queue>
#include <algorithm>
#include <iostream>
#define mem(a) memset(a,0,sizeof(a))
#define go(i,a,b) for(int i=a;i<=b;i++)
#define og(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
const int maxn=10000;
const int inf=0x3f3f3f3f;
typedef long long ll;
typedef unsigned long long ull;
int pre[1005];
int find(int x){return x==pre[x]?x:pre[x]=find(pre[x]);}
int gcd(int a,int b){return b==0?a:gcd(b,a%b);}
main()
{
    int n,dp[105][255];
    int money[5]={1,5,10,25,50};
    while(~scanf("%d",&n))
    {
        mem(dp); dp[0][0]=1;
        go(i,0,4)
           go(j,1,100)
              for(int k=n;k>=money[i];k--)
                  dp[j][k]+=dp[j-1][k-money[i]];
        int ans=0;
        go(i,0,100) ans+=dp[i][n];
        printf("%d\n",ans);
    }
}

【题目】

hdu 2074 叠筐

【题意】

给定图案大小和字符a,b,保证字符a在中心位置,两字符相互包围形成图案并输出。

【思路】

字符串的规律题没什么难的,每次看到都很开心。

【代码】

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <stack>
#include <queue>
#include <algorithm>
#include <iostream>
#define mem(a) memset(a,0,sizeof(a))
#define go(i,a,b) for(int i=a;i<=b;i++)
#define og(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
const int maxn=10000;
const int inf=0x3f3f3f3f;
typedef long long ll;
typedef unsigned long long ull;
int pre[1005];
int find(int x){return x==pre[x]?x:pre[x]=find(pre[x]);}
main()
{
    int n,c=0;
    char s[82][82],a,b;
    while(~scanf("%d %c %c",&n,&a,&b))
    {
        if(c) puts("");
        c++;
        if(n==1)
        {
            printf("%c\n",a);
            continue;
        }
        int k=n/2+1; 
        memset(s,a,sizeof(s));
        go(i,1,n-k)
        {
            if(i%2)
            {
                go(j,k-i,k+i)
                {
                   s[k-i][j]=b;
                   s[k+i][j]=b;
                   s[j][k-i]=b;
                   s[j][k+i]=b;
                }
            }
        }
        go(i,1,n)
        {
            if(i==1||i==n)
            {
                printf(" ");
                go(j,2,n-1) printf("%c",s[i][j]);
                printf(" ");
            }
            else go(j,1,n) printf("%c",s[i][j]);
            puts("");
        }
    }
}

 

内容概要:本文详细探讨了基于阻尼连续可调减振器(CDC)的半主动悬架系统的控制策略。首先建立了CDC减振器的动力学模型,验证了其阻尼特性,并通过实验确认了模型的准确性。接着,搭建了1/4车辆悬架模型,分析了不同阻尼系数对悬架性能的影响。随后,引入了PID、自适应模糊PID和模糊-PID并联三种控制策略,通过仿真比较它们的性能提升效果。研究表明,模糊-PID并联控制能最优地提升悬架综合性能,在平顺性和稳定性间取得最佳平衡。此外,还深入分析了CDC减振器的特性,优化了控制策略,并进行了系统级验证。 适用人群:从事汽车工程、机械工程及相关领域的研究人员和技术人员,尤其是对车辆悬架系统和控制策略感兴趣的读者。 使用场景及目标:①适用于研究和开发基于CDC减振器的半主动悬架系统的工程师;②帮助理解不同控制策略(如PID、模糊PID、模糊-PID并联)在悬架系统中的应用及其性能差异;③为优化车辆行驶舒适性和稳定性提供理论依据和技术支持。 其他说明:本文不仅提供了详细的数学模型和仿真代码,还通过实验数据验证了模型的准确性。对于希望深入了解CDC减振器工作原理及其控制策略的读者来说,本文是一份极具价值的参考资料。同时,文中还介绍了多种控制策略的具体实现方法及其优缺点,为后续的研究和实际应用提供了有益的借鉴。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值