POJ 2513 Colored Sticks 解题报告

    第一次接触欧拉回路。虽然在离散数学里学过,敲代码还是第一次。

    本题是说端点颜色相同的两根木棒可连接,能否将所有的木棒连成一条直线。

    将颜色视为节点v,将木棒视为边e,构成图G。如果能找到一条一笔画的路经过所有边,那么便符合条件。也就是判断是否是欧拉回路。

    欧拉回路的条件是:

    (1) 图是连通的。

    (2) 度数为基数的点的个数是两个,或者不存在。

    连通可以通过用并查集判断。度数可以建一个数组保存当前点的度数。

    值得注意的是有全空的数据,此时应该输出Possible。这点坑了我一下,在Discuss里发现有人提出了,改一下就A了。

#include <cstdio>
#include <cstring>

const int maxn=500010;
int root[maxn];
int degree[maxn];

struct Node
{
    int next[26];
    int id;
} dic[1000000];
int index=0;
int id=0;

int find(int x)
{
    return root[x]?root[x]=find(root[x]):x;
}

bool union_set(int a,int b)
{
    a=find(a);
    b=find(b);
    if(a==b)
        return false;
    root[b]=a;
    return true;
}

int insert(char* s)
{
    int now=0;
    int len=strlen(s);
    for(int i=0;i<len;i++)
    {
        int next=s[i]-'a';
        if(dic[now].next[next]==0)
            dic[now].next[next]=++index;
        now=dic[now].next[next];
    }
    if(dic[now].id==0)
        dic[now].id=++id;
    return dic[now].id;
}

int main()
{
//    freopen("in.txt","r",stdin);
    int num=1;
    char s1[20],s2[20];
    while(~scanf("%s%s",s1,s2))
    {
        int a=insert(s1);
        int b=insert(s2);
        degree[a]++;
        degree[b]++;
        if(union_set(a,b))
            num++;
    }
    if(num==id || id==0)
    {
        int count=0;
        for(int i=1;i<=id;i++) if(degree[i]&1)
        {
            count++;
            if(count==3)
                break;
        }
        if(count==0 || count==2)
        {
            printf("Possible\n");
            return 0;
        }
    }
    printf("Impossible\n");
}

 

转载于:https://www.cnblogs.com/IT-BOY/p/3230159.html

安卓期末大作业—Android图书管理应用源代码(高分项目),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—Android图书管理应用源代码(高分项目)安卓期末大作业—And
本文以电动汽车销售策略为研究对象,综合运用层次分析法、决策树、皮尔逊相关性分析、BP神经网络及粒子群优化等多种方法,深入探讨了影响目标客户购买电动汽车的因素及相应的销售策略。研究结果显示,客户对合资品牌电动汽车的满意度为78.0887,对自主品牌的满意度为77.7654,对新势力品牌的满意度为77.0078。此外,研究还发现电池性能、经济性、城市居住年限、居住区域、工作单位、职务、家庭年收入、个人年收入、家庭可支配收入、房贷占比、车贷占比等因素对电动汽车销量存在显著影响。通过BP神经网络对目标客户的购买意愿进行预测,其预测数据拟合程度超过80%,且与真实情况高度接近。基于研究结果,本文为销售部门提出了提高销量的建议,包括精准定位尚未购买电动汽车的目标客户群体,制定并实施更具针对性的销售策略,在服务难度提升不超过5%的前提下,选择实施最具可行性和针对性的销售方案。 在研究过程中,层次分析法被用于对目标客户购买电动汽车的影响因素进行系统分析与评价;决策树模型则用于对缺失数据进行预测填充,以确保数据的完整性和准确性;BP神经网络用于预测目标客户的购买意愿,并对其预测效果进行评估;粒子群优化算法对BP神经网络模型进行优化,有效提升了模型的稳定性和预测能力;皮尔逊相关性分析用于探究不同因素与购买意愿之间的相关性。通过这些方法的综合运用,本文不仅揭示了影响电动汽车销量的关键因素,还为销售策略的优化提供了科学依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值