贪心算法小白の人品测试
来源:互联网 发布:涂银遮光布有毒吗 知乎 编辑:程序博客网 时间:2024/05/16 12:58
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=3555&cid=1755
小白の人品测试
Time Limit: 1000MS Memory limit: 65536K
题目描述
现在有n个人,编号从1到n ,每个人有一个 人品值
这是一个赤裸裸的金钱关系的世界
如果小白想要小黑直接帮他一个忙,他需要支付的代价为 abs(小白的人品 - 小黑的人品)。
小白也可以找小金,然后小金去拜托小黑帮他,这样他就要支付双份的代价,具体的,代价为
abs(小白的人品 - 小金的人品)+abs(小金的人品 - 小黑的人品)
小白还可以找多个人帮忙,不妨记为小A,小B,小C...小Z这样他要支付多份代价
abs(小白的人品 - 小A的人品)+abs(小A的人品 - 小B的人品)+...+abs(小Z的人品 - 小黑的人品)
现在问题来了,小白最少要支付多少代价才能获得小黑的帮助
输入
多组输入直到文件结束(EOF)
一个数n代表现在有n个人(2<=n<=1000)
接下来n个整数Ai代表第i个人的人品值(0<= Ai <=100)
为了方便起见,我们假设小白的标号为1,小黑的编号为n
输出
小白要支付的代价
示例输入
5 1 1 1 1 431 2 3
示例输出
32
提示
abs(x) 是绝对值
来源
“师创杯”山东理工大学第八届ACM程序设计竞赛
示例程序
- 提交
- 状态
先是DFS代码:
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- using namespace std;
- bool vis[1000+5];
- int n, a[1000+5], m;
- int abs(int x, int y)
- {
- return x>y?(x-y):(y-x);
- }
- void dfs(int cur, int ans)
- {
- if(cur==n&&ans<m)
- {
- m=ans;
- return ;
- }
- for(int i=1;i<=n;i++)
- {
- if(!vis[i])
- {
- vis[i]=1;
- dfs(i,ans+abs(a[i],a[cur]));
- vis[i]=0;
- }
- }
- return ;
- }
- int main()
- {
- while(~scanf("%d", &n))
- {
- m=99999999;
- for(int i=1;i<=n;i++)
- scanf("%d", &a[i]);
- memset(vis,0,sizeof(vis));
- vis[1]=1;
- dfs(1,0);
- printf("%d\n", m);
- }
- return 0;
- }
然后是贪心,想到贪心估计这题也就出来了,代码很简单:
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- using namespace std;
- int n, a[1000+5];
- int abs(int x, int y)
- {
- return x>y?(x-y):(y-x);
- }
- int main()
- {
- while(~scanf("%d", &n))
- {
- for(int i=1;i<=n;i++)
- scanf("%d", &a[i]);
- int cur=1, ans=abs(a[n],a[1]);
- for(int i=2;i<=n;i++)
- {
- if(abs(a[cur],a[i])+abs(a[i],a[n])<ans)
- {
- ans=abs(a[cur],a[i])+abs(a[i],a[n]);
- cur=i;
- }
- }
- printf("%d\n", ans);
- }
- return 0;
- }
1 0
- 贪心算法小白の人品测试
- 小白の人品测试
- sdut 3555 sdut第八届校赛--小白の人品测试
- 山东理工大学第八届ACM校赛——小白の人品测试
- 人品测试
- 人品问题测试
- SGU,人品测试器
- 小白进阶之贪心算法-活动选择问题
- 小白进阶之贪心算法-赫夫曼编码
- 小白进阶之贪心算法VS动态规划
- 心灵小故事:人品难得
- 常见算法小测试
- 人品?
- 贪心算法例题:2850商人小鑫
- 贪心算法例题:2851懒虫小鑫
- 贪心算法之贪心的c小加问题
- c#小作业 简单人品控制器
- 算法的一些小栗子7(贪心算法)
- SwiftyiRate中文说明
- Windows下Faster R-CNN 配置/Matlab版本编译
- tomcat的配置和优化
- 独立性检验的基本思想和初步应用
- Mysql 只修改日期的年月日
- 贪心算法小白の人品测试
- [zynq] zynq7000开发流程之SDK操作
- ORACLE 物化视图一
- 数据结构_P1
- jquery中的工具方法--Deferred和when
- android获取网页数据的方法
- 未能将网站配置为使用ASP.NET4.X 解决方法
- python ORM
- QEMU-KVM中的多线程压缩迁移技术