勇气∶策略∶机遇=1∶1∶1
——《绝对挑战》观后感
会计098班 韦伊一
影片一开始便展示了不同寻常的肃杀氛围,在赋予晋级选手高于其他淘汰者的权利的同时,未知的考验等待他们——这是我只在国外看到过的,国内少有甚至从未尝试过的人才选拔方式。从似乎和职场毫无关联甚至大相径庭的测试隐晦检验一个人在职场上遇事可能的应对方式,除考核业绩之外更考查一个人的综合水平,这无疑是更新颖大胆也更全面的方式。这个视频向我展示了一个新的成功等式:勇气∶策略∶机遇=1∶1∶1。
随机分成的两组里,第一组明显的弱势。面对从未见闻的作战方式还是先前不能想象的比赛规则,第二组竞争者在一旁虎视眈眈观战的后发制人更有优势,自己队友除开初时的互不熟悉甚至还有连沟通都成问题的外国友人??一切因素几乎直接指向“必败无疑”。而后冷眼看着他们的勇往直前却手忙脚乱,我心里想着“果然”两字。
而随后出发的第二组不负众望地吸取了第一组的教训,先制定了作战计划,十分顺利地通过了第一组卡了很久的那个障碍。遗憾的是于汕头市策略也成为他们束手束脚的限制,在他们离成功仅一步之遥的时候,由于一成不变的计划导致了一再的失败——最后他们用的时间居然是第一组所耗的将近两倍!
这真是个有意思的辩证题。想起庄子先是淡淡陈述“天地与我并生,而万物与我为一”,然后疑惑地问:“既已为一矣,且得有言乎?既已谓之一矣,且得无言乎?”不客气的说,第一组的勇气其实更像无知无畏的鲁莽,而第二组看似缜密的谋略实则不敢放手一搏的胆怯——既然都是如此,那还有什么好说的?然而“中庸之道”实在是世间难事,我想得最多的,是这两个组制胜的关键。若是从视频结果来说这两组的胜负未免流于俗套,在我看来,两组虽然由于过程的不同遇到了不同的困难,但面对着这样苛刻而且匪夷所思的条件,他们在某个程度上都是赢家。
先说第一组。让我最后觉得震撼的是他们在兵荒马乱的时刻展现出来的越挫越勇的毅力。他们聪明地选择了熟悉英文打字的温小龙做“秘书”,英文优秀的高速俨然成为其中的关键,她完美地扮演了沟通和“秘书助理”的角色,这是匆忙而没有进行协商之下他们马虎的策略。而他们屡败屡战的执着让人动容,这样的勇气在风云诡谲的职场非常难得:当你一再碰上不能解决的困难,你是转头另起炉灶还是一根直肠子通到底?当你的雄心壮志被现实的残酷一遍一遍摧毁,你是满心沮丧地放弃还是不愿服输地继续前行?在生意场上如此,生活更是如此。
再说第二组。他们花了四分钟指定的策略,在第一个环节为他们节省了将近是第一组所耗一半的时间。但是过于深思熟虑有时候会变成成功的阻碍,一成不变的策略也不符合“兵者,诡道也”。这一组在应变上做得不错,至少在一错再错之后能够迅速改变策略。我觉得最可惜的是,虽然他们在有了第一组先驱的教训之下做出正确决策的才能,却没有一个能起主导作用(或是说某方面才华突出而得到众人承认)的人物——即使在最后推选的那个“贡献最大的人”,也只是“在那个情况下能够较好达到原预期标准”的人——因此,第二组少的其实是:精神。
纵然是“真力弥满,万象在旁”,也是“要路愈远,幽行为迟”。这讲的就是过人胆识和缜密谋略的关系。职场如战场,兵者行诡道,上阵勇猛杀敌的将军还要尊请一位不出帷帐而知天下事的幕僚军师呢。这个视频里面,行事风格分明的两组,暴露了他们各自的缺点,同时彰显了他们的优点,这正是我们这般的局外人能够学习的。
退一万步说,即使这个“挑战”的结局是只留下那最最优秀的一个人作为最后赢家,其他九个人就活该花了那么多的精力,费了那么多时日去下一个必输的赌注吗?我为何一开篇就说,这十人之中,无人是输家?据我所知,这档节目是有一定知名度的,并得到很多知名企业的推崇。能够杀进决赛的人,就已是各有千秋;而每一关的挑战都通过媒体被公之于众??这已经是叱咤职场莫大的资本了。在这种情况下,每个人都是赢家。即使在这一场竞争中失利,从此却是天高任鸟飞了。这便是“机遇”。可以说,得到那个万人垂涎的职位只是这一场“绝对挑战”的附加价值,参加这个挑战本身,才是一个稳健的跳板。
成功是一场和自己的博弈。在抓住机遇的基础上,深谋远虑,勇往直前——生命是没有胜败的,只有将机遇,勇气和策略摆在一个平面上,才知生命深浅。
第二篇:勇气的挑战
勇气的挑战
Problem
给定n个点的坐标(x,y,z),且n<=50,从点1出发,怎么样才能走一条路径,访问每个点一次且仅一次,使走过的距离和最小?
Input
多组数据. 第1行n,然后n行3个整数坐标
Output
每组一行,代表最小权和
Sample Input
3
0 0 0
1 1 0
1 -1 0
Sample Output
3.4
Source
A Great Beloved and My Gate to Freedom
来源:http://acm./showproblem.php?problem_id=1073
最新评论发表评论
您尚未登录本站,不能发表评论,请登录 或者 注册 成为本站会员
评论人: wolailelxy 发布时间: 2013-4-10 23:06:04
#include<iostream>
#include<cmath>
using namespace std;
struct ZB
{int x,y,z;
};
double L(ZB a,ZB b)
{return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));
}
double L(ZB *p,int n)
{int q;ZB t;double d=0;
for(int i=0;i<n-1;i++)
{
q=i+1;
for(int j=i+1;j<n;j++)
{if(L(p[i],p[q])>L(p[i],p[j]))
q=j;}
t=p[i+1];p[i+1]=p[q];p[q]=t;
}
for(int i=0;i<n-1;i++)
d+=L(p[i],p[i+1]);
return d;
}
int main()
{ZB *p;
int n;
double MD;
cout<<"输入坐标个数:n=";
cin>>n;
p=new ZB[n];
cout<<"请输入坐标x y z:"<<endl;
for(int i=0;i<n;i++)
cin>>p[i].x>>p[i].y>>p[i].z;
MD=L(p,n);
cout<<"最小距离为:"<<MD<<endl; system("pause");
return 0;
}
评论人: 宝贝赢赢 发布时间: 2012-3-7 23:55:14 public class test_8
{
private double mindt;
class point
{
public int x, y, z;
}
int n;
point[] p;
public double Mindt
{
get
{
return mindt;
}
}
public test_8(int n,int[,]tp)
{
this.n=n;
p=new point[n];
for (int j = 0; j < n; j++)
{
p[j] = new point();
p[j].x = tp[j, 0];
p[j].y = tp[j, 1];
p[j].z = tp[j, 2];
}
mindt = 0;
mean();
}
public test_8(string input,string output)
{
FileStream fs=new FileStream(input,FileMode.Open,FileAccess.Read); StreamReader sr = new StreamReader(fs);
FileStream fo = new FileStream(output, FileMode.Append, FileAccess.Write); StreamWriter sw = new StreamWriter(fo);
sw.WriteLine("\n原始数据如下所示:\n");
string s = sr.ReadLine();
sw.WriteLine(s);
int n = int.Parse(s);
int[,]p=new int[n,3];
for (int t = 0; t < n;t++ )
{
s = sr.ReadLine();
sw.WriteLine(s);
string[] ts = s.Split();
p[t, 0] = int.Parse(ts[0]);
p[t, 1] = int.Parse(ts[1]);
p[t, 2] = int.Parse(ts[2]);
}
sr.Close();
fs.Close();
test_8 t8 = new test_8(n,p);
sw.WriteLine("\n最小路径长度是:"+t8.Mindt);
sw.Close();
fo.Close();
c.wl("\n最小路径长度是:" + t8.Mindt);
}
public static void Main()
{
test_8 t=new test_8("input.txt","output.txt");
}
void mean()
{
bool[]isused=new bool[n];
int j = 0;
for (j = 0; j < n; j++)
isused[j] = false;
isused[0] = true;
int cur = 0;
c.w(cur + " ");
while (j > 1)
{
j--;
double temp = 0;
int next = 1;
while (isused[next]) next++;
temp = distance(p[cur],p[next]);
for(int i=next+1;i<n;i++)
if (!isused[i] )
{ double d=distance(p[cur],p[i]);
if (temp > d)
{ temp = d; next = i; }
}
mindt += temp;
cur = next;
c.w(cur+" ");
isused[cur] = true;
}
}
double distance(point po,point pi)
{
return Math.Sqrt((po.x - pi.x) * (po.x - pi.x) + (po.y - pi.y) * (po.y - pi.y) + (po.z - pi.z) * (po.z - pi.z));
}
}
评论人: wanshude_bhr 发布时间: 2008-8-18 15:02:42
package com.bhr.acm.src;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import com.bhr.acm.util.Point;
public class NO4_Courage {
public double getDistance(Point p1,Point p2){
double result=0;
double tempx=(p1.getX()-p2.getX())*(p1.getX()-p2.getX());
double tempy=(p1.getY()-p2.getY())*(p1.getY()-p2.getY());
double tempz=(p1.getZ()-p2.getZ())*(p1.getZ()-p2.getZ());
return result=Math.sqrt(tempx+tempy+tempz);
}
public Point getPoint(String src){
Point p=new Point();
StringTokenizer s = new StringTokenizer(src," ",false);
int n=0;
while(s.hasMoreTokens()){
String temp = s.nextToken();
if(n==0){
p.setX(Integer.parseInt(temp));
n++;
}else if(n==1){
p.setY(Integer.parseInt(temp));
n++;
}else{
p.setZ(Integer.parseInt(temp));
}
}
return p;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
NO4_Courage no4=new NO4_Courage();
BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); int n=0;
System.out.println("Please Input count of points:");
int len =0;
try {
len = Integer.parseInt(br.readLine());
} catch (NumberFormatException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Point[] points = new Point[len];
try {
String src=null;
while(n<len){
//System.out.println(src);
src=br.readLine();
points[n]=no4.getPoint(src);
n++;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<Point> pointsArr=new ArrayList();
List<Point> resultArr=new ArrayList();
for(int i=1;i<points.length;i++){
pointsArr.add(points[i]);
}
double sumDistance=0;
resultArr.add(0, points[0]);
int last = 0;
int temp=0;
while(last<len-1){
double length=no4.getDistance(resultArr.get(last),pointsArr.get(0)); for(int i=0;i<=pointsArr.size()-1;i++){
if(length>=no4.getDistance(resultArr.get(last),pointsArr.get(i))){ length=no4.getDistance(resultArr.get(last),pointsArr.get(i)); temp=i;
}
}
sumDistance+=length;
resultArr.add(pointsArr.get(temp));
pointsArr.remove(temp);
last = resultArr.size()-1;
}
System.out.println(sumDistance);
for(int i=0;i<resultArr.size()-1;i++){
System.out.print(resultArr.get(i)+"--->");
}
System.out.print(resultArr.get(resultArr.size()-1));
}
}
评论人: wanshude_bhr 发布时间: 2008-8-18 14:37:12
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import com.bhr.acm.util.Point;
public class NO4_Courage {
public double getDistance(Point p1,Point p2){
double result=0;
double tempx=(p1.getX()-p2.getX())*(p1.getX()-p2.getX());
double tempy=(p1.getY()-p2.getY())*(p1.getY()-p2.getY());
double tempz=(p1.getZ()-p2.getZ())*(p1.getZ()-p2.getZ());
return result=Math.sqrt(tempx+tempy+tempz);
}
public Point getPoint(String src){
Point p=new Point();
StringTokenizer s = new StringTokenizer(src," ",false);
int n=0;
while(s.hasMoreTokens()){
String temp = s.nextToken();
if(n==0){
p.setX(Integer.parseInt(temp));
n++;
}else if(n==1){
p.setY(Integer.parseInt(temp));
n++;
}else{
p.setZ(Integer.parseInt(temp));
}
}
return p;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
NO4_Courage no4=new NO4_Courage();
BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); int n=0;
System.out.println("Please Input count of points:");
int len =0;
try {
len = Integer.parseInt(br.readLine());
} catch (NumberFormatException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Point[] points = new Point[len];
try {
String src=null;
while(n<len){
//System.out.println(src);
src=br.readLine();
points[n]=no4.getPoint(src);
n++;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<Point> pointsArr=new ArrayList();
List<Point> resultArr=new ArrayList();
for(int i=1;i<points.length;i++){
pointsArr.add(points[i]);
}
double sumDistance=0;
resultArr.add(0, points[0]);
int last = 0;
int temp=0;
while(last<len){
double length=no4.getDistance(resultArr.get(last),pointsArr.get(0)); for(int i=0;i<pointsArr.size()-1;i++){
if(length<no4.getDistance(resultArr.get(last),pointsArr.get(i))){ length=no4.getDistance(resultArr.get(last),pointsArr.get(i)); temp=i;
}
}
sumDistance+=length;
resultArr.add(pointsArr.get(temp));
pointsArr.remove(temp);
last = resultArr.size()-1;
}
System.out.println(sumDistance);
}
}
评论人: yihui 发布时间: 2008-8-1 19:10:19
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <limits.h>
#define MAX_POINT 50 /* n <= 50 */ #define Square(x) ((x)*(x))
#define N_DIMENSION 3 /* 定义维数 */ typedef int Coordinate[N_DIMENSION]; /* 定义坐标 */
Coordinate point[MAX_POINT]; /* 初始坐标 */ Coordinate path[MAX_POINT]; /* 坐标路径 */ int flag[MAX_POINT]; /* 路径标记 */ int pointNum; /* 坐标点数 */
double sumDistance; /* 路径距离 */
double minDistance = LONG_MAX; /* 最小路径 */
void ReadSampleInput()
{
FILE *fpSampleInput = NULL;
int i, j;
fpSampleInput = fopen( "SampleInput.txt", "rb" ); if ( NULL == fpSampleInput )
{
printf("Error: Open sample input file failed !\n"); exit( -1 );
}
fscanf( fpSampleInput, "%d", &pointNum ); for ( i = 0; i < pointNum; i++ )
{
for ( j = 0; j < N_DIMENSION; j++ )
fscanf( fpSampleInput, "%d", &point[i][j] ); }
fclose( fpSampleInput );
}
void CopyCoordinate( Coordinate a, Coordinate b ) {
int i;
for ( i = 0; i < N_DIMENSION; i++ )
a[i] = b[i];
}
double CalPointDistance( Coordinate a, Coordinate b ) {
int i;
int distance = 0;
for ( i = 0; i < N_DIMENSION; i++ )
distance += Square( a[i] - b[i] );
return sqrt( distance );
}
/*
* 核心函数:使用回溯算法遍历所有可能的路径 */
void CalMinDistance( int pointCnt )
{
int i = 0;
double distance = 0.0;
if ( pointCnt == pointNum ) /* 已经访问完每一点 */ {
if ( sumDistance < minDistance )
minDistance = sumDistance;
return ;
}
if ( 0 == pointCnt ) /* 从第一点开始访问 */ {
CopyCoordinate( path[0], point[0] );
pointCnt += 1;
}
for ( i = 1; i < pointNum; i++ )
{
if ( flag[i] == 1 ) /* 跳过已经标记的点 */ continue;
else
{
CopyCoordinate( path[pointCnt], point[i] ); /* 将点拷贝到路径中 */ flag[i] = 1; /* 标记该点 */
/* 计算点距离 */
distance = CalPointDistance( path[pointCnt-1], path[pointCnt] ); sumDistance += distance;
/* 如果总距离已经超过当前最小距离,则回溯 */
if ( sumDistance > minDistance )
{
flag[i] = 0;
sumDistance -= distance;
return ;
}
CalMinDistance( pointCnt+1 ); /* 继续计算下一点 */
}
flag[i] = 0; /* 回溯 */
sumDistance -= distance;
}
}
void WriteSampleInput( double number )
{
FILE *fpSampleOutput = NULL;
fpSampleOutput = fopen( "SampleOutput.txt", "wb" );
if ( NULL == fpSampleOutput )
{
printf("Error: Open sample output file failed !\n");
exit( -1 );
}
fprintf( fpSampleOutput, "%.1lf", number );
fclose( fpSampleOutput );
}
int main()
{
ReadSampleInput();
CalMinDistance( 0 );
WriteSampleInput( minDistance );
return 0;
}
评论人: hjkj 发布时间: 2008-8-1 10:59:06
其实是一个简单的图,求最小权!
评论人: yanzioUo 发布时间: 2008-7-31 19:48:49
高手归来!!!!!!!!!!!!!!!!
高手在哪?
评论人: yanzioUo 发布时间: 2008-7-31 19:42:55
我有一个想法就是把给出的所有点中任意两个点之间的距离算出来用一个二惟的数组来存放,从1点出发,就是从1点开始,寻找最近的点并定着这个点,再寻找与这个点最近的点(除了1点外),如果这样写算法的话,算法的效率很低,程序也很长,而且我写的在数组传递的过程中出现了错误就不贴上去了,希望哪位高手出来,帮忙解决,感激不尽哈!要精简算法,可能要用到数据结构吧,但我还没学到……
评论人: yanzioUo 发布时间: 2008-7-31 19:42:55