全部评论
记忆化搜索就可以
#include<stdio.h>
int ans[1010];
int min(int a,int b)
{
return a<b?a:b;
}
int dfs(int level, int songs, int s ,int L)
{
if (ans[songs] != -1)
{
return ans[songs];
}
if (songs == 0)
{
return 0;
}
int num = (L+1)/(s+1);
int sum = songs+1;
int i;
for (i = 1; i <= num && i <= songs; ++i)
{
if (i%13 == 0)
continue;
sum = min(sum, 1+dfs(level+1, songs-i, s, L));
}
ans[songs] = sum;
return sum;
}
int main()
{
int n, s, L;
int i, j;
while(scanf("%d%d%d", &n,&s, &L) != EOF)
{
//printf("%d\n", (L+1)/(s+1));
for (j = 0; j <= 1010; j++)
ans[j] = -1;
printf("%d\n", dfs(0, n, s, L));
}
return 0;
}
做了半天百分之九十 放弃了
牛客有原题,我做过,你把情况考虑周全了就行,贴下我的代码地址:
http://www.nowcoder.com/profile/632646/codeBookDetail?submissionId=2984322
题目在这
http://www.nowcoder.com/questionTerminal/66aa4aada59e4da5aac67cacc8b495a2
为什么我一直打不开测评的网址。。。
我的最高只能达到95%
题目名称还记得嘛
相关推荐
点赞 评论 收藏
分享
02-04 13:35
中山大学 Unity3D客户端 zhaijiang:2028届怎么是23年入学呀
,项目的话可以多写一下自己用到了哪些技术栈,这样面试官到时候有的问,也可以贴上自己的github地址,不过楼主这个学历已经很强了

点赞 评论 收藏
分享