繁尘、离梦
(背包特别版见3楼)技能训练营续坑!

本帖最后由 繁尘、离梦 于 2013-4-25 15:05 编辑

技能训练营开坑()

!!!!每题第一个提交的亲并且能通过的亲,我会在结题前,把它的名字mark在题目后方!!!!!10~


最近看了下大家提问的内容,主要是:!27~

算法为主,一些基础知识、习题啊什么的也带着些

既然这样为了活跃社区,特开一个关于编程技能训练的互动帖。!7~

接下来楼主会找很多题目给新手们练习,时不时会更新一楼内容。

2楼是一道题目,一般持续1-2天,第三天会把2楼内容放到3楼,

3楼是历史题目,亲们也可以同样练习,

并且把代码发在下面的一些楼层里,

注明是第几题,楼主会去看代码去验证你的代码准确性和存在的问题

楼主是大水笔,亲们别怕出错,勇敢的训练起来~~

喵~~~!25~

希望版主们的支持~~

米娜桑,一叩首!054~

该贴已经同步到 繁尘、离梦的微博

绯色基
本帖最后由
展开Biu

本帖最后由 绯色基 于 2013-4-26 18:59 编辑

[mw_shl_code=c,true]

#include <stdio.h>

#include <stdlib.h>

#define M 100

int Add(int *a,int i);

int N,S,max=0;

int main()

{ int i,j,hg[M]={0},tmpe=0;

scanf("%d%d", &S,&N);

for(i=0;i<N;i++)

scanf("%d", &hg);

for(i=0;i<N-1;i++)

for(j=i+1;j<N;j++)

if(hg<hg[j])

tmpe=hg,hg=hg[j],hg[j]=tmpe;

for(i=0;i<N;i++)

{ max=0;

tmpe=Add(hg,i);

if(tmpe)

{printf("yes\n");

break;}

}

if(!tmpe)

printf("no");

system("pause");

return 0;

}

int Add(int *a,int i)

{

max+=a;

if(max==S)

return 1;

else if(max<S&&i<N)

Add(a,i+1);

else if(max>S&&i<N)

max-=a,Add(a,i+1);

else

return 0;

}

[/mw_shl_code]

我来交简单背包的,基本上就是排序后逐个尝试,自测通过

[查看全文]
汝欠咱的一生
果断是错的
展开Biu

额。果断是错的。没写出来

[查看全文]
terry182
本帖最后由
展开Biu

本帖最后由 terry182 于 2013-4-25 23:48 编辑

繁尘、离梦 发表于 2013-4-25 22:41

string 用的这么熟练肯定没有错拉。试下下面的进阶题目吧= 。 =

我會告訴你,Joseph那題就是我最苦手的嗎..

Knapsack 和 DP 都是做過的題目於是都會..

[查看全文]
繁尘、离梦
雞兔同籠
展开Biu

terry182 发表于 2013-4-25 19:03

1.雞兔同籠

[mw_shl_code=csharp,true]#include

using namespace std;

!27~ string 用的这么熟练肯定没有错拉。试下下面的进阶题目吧= 。 =

[查看全文]
terry182
雞兔同籠
展开Biu

1.雞兔同籠

[mw_shl_code=csharp,true]#include *本站禁止HTML标签噢*

using namespace std;

int main()

{ int m,n;

cin >> m >> n;

n=(n-2*m)/2;

cout << n << " " << m-n << endl;

return 0;}[/mw_shl_code]

2.大數加法

[mw_shl_code=cpp,true]#include *本站禁止HTML标签噢*

using namespace std;

int main()

{ int t,c=0;

cin >> t;

while (t--){

string a,b;

char C='0';

string temp,temp2;

cin >> a >> b;

temp=a,temp2=b;

if (a.length() < b.length())

swap(a,b);

for (int i=1;i<=b.length();i++)

{ a[a.length()-i]+=b[b.length()-i]-'0';

if (a[a.length()-i] >= 10+'0' && i!=a.length())

{ a[a.length()-i]-=10;

a[a.length()-i-1]+=1;

}

else if (a[a.length()-i]>=10+'0')

{ a[a.length()-i]-=10;

C+=1;

}

}

if (C!='0')

a=C+a;

cout << "Case " << ++c << ": " << temp << " + " << temp2 << " = " << a << endl;

}

return 0;}[/mw_shl_code]

[查看全文]
foodszhu
本帖最后由
展开Biu

本帖最后由 foodszhu 于 2013-4-25 19:54 编辑

繁尘、离梦 发表于 2013-4-25 18:49

这就是百度拼音。。。

如果存状态的花数组就要开挺大的吧你这数据不是10000000么。。。

不太懂啊。。

动规和递归。。。。略乱。。。

恩。。。需要再开一个数组记录啊。。。。虽然说长为24数组就能解决。。。不过写起来也有点小麻烦

[查看全文]
繁尘、离梦
这就是百度拼音
展开Biu

foodszhu 发表于 2013-4-25 18:48

动归?动规?。。。。。??

@@26!! 这就是百度拼音。。。@@19!!

[查看全文]
foodszhu
看来已经得心应手了嘛
展开Biu

繁尘、离梦 发表于 2013-4-25 18:39

看来已经得心应手了嘛-

但是递归和动归面前我会选动归

动归?动规?。。。。。??

好吧。。。我也分不清楚。。。保存的数据的话要多开一个数组吧。。。懒得开了。。。反正数据规模不大。。。

[查看全文]