| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5185 人关注过本帖, 2 人收藏
标题:编程中国C语言编程竞赛9.8 BY S.K卧龙孔明
只看楼主 加入收藏
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
以下是引用andyzhshg在2007-9-8 22:49:25的发言:

唉,只做了一题,还是不发了吧。
看来里高手水平还差很远很远啊。


楼主什么时候发答案呢?
楼主最好把你的输入文件和输出文件先发上来,让我们这些没交上卷子的人自己先测测成绩。

如果他愿意的话,早就是用OJ了,你们测试就不用等那么久或者等到结束了



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/

2007-09-08 22:57
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 

忘拉
还是在水区看到的
偶说过要来的
做拉一个 也就是第一的个 应该是最简单的一个

还是发上来嘛

i0W0qI4i.rar (745 Bytes) 编程中国C语言编程竞赛9.8 BY S.K卧龙孔明



   好好活着,因为我们会死很久!!!
2007-09-08 23:05
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
以下是引用卧龙孔明在2007-9-8 22:34:10的发言:
时间到,测试工作正式进行,如果您还有程序未发,请于22:40前发上,否则不予以测评

原来时间早到拉


   好好活着,因为我们会死很久!!!
2007-09-08 23:07
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
回复:(卧龙孔明)编程中国C语言编程竞赛9.8 BY S.K卧...
[UserName=卧龙孔明]
ZbFzIOMX.rar (1.07 KB) 编程中国C语言编程竞赛9.8 BY S.K卧龙孔明




虽然时间已经到了```
但是我还是想知道我的程序到底怎么样```

孔名```能帮我把输入和输出改一下``再调试一下```

然后把结果发上来啊``

谢谢了``


[/UserName]

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-09-08 23:15
catliker
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-10-21
收藏
得分:0 
回复:(卧龙孔明)编程中国C语言编程竞赛9.8 BY S.K卧...
时间来不及了,只作出了一个。
7bLfippB.rar (1.34 KB) 回复:(卧龙孔明)编程中国C语言编程竞赛9.8 BY S.K卧...


[此贴子已经被作者于2007-9-8 23:37:17编辑过]

2007-09-08 23:36
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 

第3题似乎可以用线段树做到O(nlogn)的算法。不过题目没说增量的范围,如果增量都不大,直接用next_permutation就可以搞定了。

2007-09-08 23:53
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
回复:(leeco)第3题似乎可以用线段树做到O(nlogn)的...
怎么建树??

2007-09-09 09:34
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
OH HOHOHOHO 忙着做系统,都很少来看了。
下次我也来

淘宝杜琨
2007-09-09 11:05
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
下次

Fight  to win  or  die...
2007-09-09 13:05
ericyoubin
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-9-12
收藏
得分:0 
木卫二计数法的超吊代码

我的解法就是不停的制造排列,然后通过排列匹配起始位置,打开计数器,然后计数器=第二个变量时,计算终止,打印信息。
该解法可以支持下面的条件
input:
1
8
1
output:
3 2 1
如:
input value 1:
6
input value 2:
8888888
input value 3:
1 3 2 4 6 5
2 5 6 4 8 10 1 7 9 3 11
请各位验证!!!


//-------------------------------------------------------------

int MAX_COUNT;
int sum=-1,OFFSET=0;
int arr0[100];//输入的数组

//交换元素位置
void switchpos(int * arr, int x, int y)
{
int tempv;
tempv = arr[x];
arr[x]=arr[y];
arr[y] = tempv;
}
//判断数组是否完全相等
int comparearr(int * arr1, int* arr2, int length)
{
for (int x=0;x<length;x++)
{
if (arr1[x]!=arr2[x])
{
return -1;
}
}
return 0;
}
//递归函数,主要是获取一个定长数组的所有排列的情况
bool getlist(int *intarr,int *arrhead,int n)
{
if (sum==OFFSET) return true;
int *arrtemp= new int[n];
int *headtemp= new int[MAX_COUNT];
for (int x=0;x<MAX_COUNT;x++)
headtemp[x]= arrhead[x];
if (sum<0)
{
sum=comparearr(arr0,headtemp,n);
}
for (int x=0;x<n;x++)
{
arrtemp[x]=intarr[x];
}
if (n>1)
{
if (sum<0)
{
sum=comparearr(arr0,headtemp,n);
}
for (int i=0;i<n;i++) //在循环中调用递归函数,每次循环将数组第一位依次和后面的每一位进行交换
{
if (i!=0)
{
switchpos(arrtemp,0,i);
if (sum<0)
{
sum=comparearr(arr0,headtemp,n);
}
else
{
sum++;
}
for (int x=0;x<n;x++)
{
headtemp[MAX_COUNT-n+x]= arrtemp[x];
}

if (sum==OFFSET)
{
for (int x=0;x<MAX_COUNT;x++)
cout<<headtemp[x]<<" ";
cout<<endl;
getchar();
return true;
}

}
headtemp[MAX_COUNT-n]= arrtemp[0];
getlist(arrtemp+1,headtemp, n-1);
if (sum==OFFSET) return true;
}
}
delete []arrtemp;
delete []headtemp;
return 0;
}

int main( void )
{
int overcount;
cout<<"input value 1:"<<endl;
cin>>MAX_COUNT;
cout<<"input value 2:"<<endl;
cin>>OFFSET;
cout<<"input value 3:"<<endl;
for (int i=0; i<MAX_COUNT; i++)
cin>>arr0[i];
int arr [100];//自动生成当前位数的初始顺序
int arrhead [100];
for (int i=0;i<MAX_COUNT;i++)
{
arr[i]= i+1;
arrhead[i]= i+1;
}
while (!getlist(arr,arrhead,MAX_COUNT))//循环调用递归函数比如:3个元素的判断完了还没有达到,则判断4个元素的
{
MAX_COUNT++;
if (sum>=0) sum++;
for (int i=0;i<MAX_COUNT;i++)
{
arr[i]= i+1;
arrhead[i]= i+1;
}
if (sum==OFFSET)
{
for (int i=0;i<MAX_COUNT;i++)
{
cout<<arr[i]<<"";
}
cout<<endl;
break;
}
}
getchar();
return 0;
}

2007-09-12 16:13
快速回复:编程中国C语言编程竞赛9.8 BY S.K卧龙孔明
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017069 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved