[题解]UVA10054 The Necklace

本文介绍了如何通过欧拉回路的思路解决珠子串连问题,提供了完整的代码实现和数据生成器链接。此外,还分享了一个简单的数据生成器实例,帮助读者更好地理解算法应用。

链接:http://vjudge.net/problem/viewProblem.action?id=18806

描述:给出一堆珠子,每个珠子有两种颜色,有一端颜色相同的珠子可以串在一起,问是否可以把所有珠子串在一起,并求其中一种方案。

思路:欧拉回路

        以颜色作为节点,以珠子作为边建图,无向图。

 

下面是我的实现:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 #define MaxC 55
 6 int Edge[MaxC][MaxC],Du[MaxC];
 7 int M,Cnt;
 8 bool vis[MaxC][MaxC];
 9 inline void Addedge(int u,int v)
10 {
11     Edge[u][v]++;Edge[v][u]++;
12 }
13 void Solve(int u)
14 {
15     int v;
16     for(v=1;v<=M;)
17     {
18         if(Edge[u][v])
19         {
20            // vis[u][v]=vis[v][u]=1;
21             Edge[u][v]--;Edge[v][u]--;
22             Solve(v);
23             printf("%d %d",v,u);
24             if(u!=M)
25                 printf("\n");
26             if(u==M)
27             {
28                 Cnt--;
29                 if(Cnt)
30                     printf("\n");
31             }
32         }
33         else v++;
34     }
35 }
36 int main()
37 {
38     int T,N;
39     int i,j,u,v;
40     scanf("%d",&T);
41     for(i=1;i<=T;i++)
42     {
43         if(i>1) printf("\n");
44         printf("Case #%d\n",i);
45         scanf("%d",&N);
46         memset(Du,0,sizeof(Du));
47         memset(Edge,0,sizeof(Edge));
48         memset(vis,0,sizeof(vis));
49         M=0;
50         for(j=1;j<=N;j++)
51         {
52             scanf("%d%d",&u,&v);
53             Addedge(u,v);
54             Du[u]++;Du[v]++;
55             if(M<u) M=u;
56             if(M<v) M=v;
57         }
58         for(j=1;j<=M;j++)
59             if(Du[j]%2)
60                 break;
61         if(j<=M)
62         {
63             printf("some beads may be lost\n");
64             continue;
65         }
66         Cnt=Du[M];
67         Solve(M);
68     }
69     return 0;
70 }
View Code

 

给一个我写的数据生成器:http://www.cnblogs.com/CQBZOIer-zyy/p/3818078.html

转载于:https://www.cnblogs.com/CQBZOIer-zyy/p/3818069.html

在Shubham Bhatt的搜索结果中增强了自定义设置的字段搜索和工具提示。感谢Sameer N Miraj。 通过使用级快速查找,您可以缩短代码几次单击的时间。 另外,您可以搜索代码的任何字符串使用此扩展名,您可以搜索您的salesforce实例的代码组件:1)顶点类2)Apex触发器3)visualforce页面4)Visualforce组件5)自定义设置及其字段搜索6)用户搜索按名称7)按配置文件名称搜索配置文件8)权限集9)队列10)自定义标签除上述内容外,您还可以使用此扩展名从左侧的级快速查找部分跳转到类/页面/触发器。 在悬停时,需要更多信息,我们提供了工具提示。 在firefox上可以找到类似的插件,可以在这里下载:https://addons.mozilla.org/en-US/firefox/addon/salesforce-quick-search/使用方法:以下两个部分都添加到了设置页面,因此这仅对开发员和管理员有用,此工具对Salesforce用户没有任何意义。 1)“级快速查找”部分:在所有设置页面的侧面导航栏中添加了此部分。 选择要转到的代码组件,然后开始输入代码名称,将弹出一个自动完成建议,然后选择要转到的代码。 2)开发员实用工具:2.1)仅在force.com主页中添加了此组件。 假设您想知道自己在代码中将配置文件名称硬编码的位置,例如if(profile.name =='sys Admin'){//您正在做某事}。 现在要找到答案,您必须单独浏览所有代码,或者在eclipse中创建一个force.com项目,然后在其中进行搜索。 我们无法直接在Salesforce中做到这一点。 此字符串搜索将帮助您做到这一点。 您必须检查要在其中搜索代码的代码组件,在输入文本字段中输入字符串,然后按Enter。 您将看到一个使用该字符串的代码组件列表。 2.2)代码覆盖率摘录:您可以在组织中查看和下载代码覆盖率。 1.1.1版更新将快速搜索范围扩展到电子邮件模板,验证规则,工作流规则,添加的自定义对象版本检查。 Update 1.2更新了UI,使其与Lightning Update 1.3更加同步,增加了Code Coverage提取部分,允许用户查看和下载Code Coverage。 更新1.3.3:更新了cookie问题。 注意:1)Salesforce的REST API用于完成上述功能。更新1.3.5 1)添加了对删除所有调试日志的支持2)在traceflag上添加了一个按钮以更新startDate /到期日期。 更新2.0.0 1)添加了对工具提示的支持2)添加了自定义设置及其字段搜索Update 2.1 1)修复了工具查询的自定义设置限制的错误Update 2.2 1)添加了用户和配置文件搜索Update 2.3 1)修复了该错误工具查询更新2.3的自定义设置限制1)添加了对权限集,队列和自定义标签的搜索 支持语言:English
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值