BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #101673同步于 2022/2/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

(大一)遇到自己解决不了的思路逻辑问题了,各位大佬救救孩子

W2w
2022/2/8镜像同步8 回复
我的思路感觉挺有逻辑的为什么就是不对呢,只有6/10,也找不到其他特殊情况了,各位大佬可以帮忙看看我的问题出在哪了呢,最好可以直接把我没考虑进去的特殊情况直接指出来[ema12]じゃ、お願いします ```c #include<stdio.h> int l1,l2,s1[502],s2[502],dp[502][502],ans[502],max,max1,id,id_i,id_j,flag=1; void f(int x,int y){ if(x==0||y==0||!flag) return; if(s1[x]==s2[y]&&dp[x][y]==max1){ ans[id++]=s1[x]; max1--; if(id==max){ flag=0;//一旦找到一个可行答案就关闭开关 } f(x-1,y-1);//向斜上方继续寻找 } else if(s1[x]!=s2[y]&&dp[x][y]==max1){ if(flag)f(x-1,y);//向上方寻找 } else { if(flag)f(x,y-1);//在同一行向低下标元素中寻找 } } int main(){ scanf("%d",&l1); for(int i=1;i<=l1;i++)scanf("%d",&s1[i]); scanf("%d",&l2); for(int i=1;i<=l2;i++)scanf("%d",&s2[i]); for(int i=1;i<=l1;i++){//i-s1,j-s2,以s2[j]结尾的序列 int maxn=0; for(int j=1;j<=l2;j++){ dp[i][j]=dp[i-1][j]; if(s1[i]==s2[j])dp[i][j]=maxn+1; else if(s1[i]>s2[j]&&maxn<dp[i][j])maxn=dp[i][j]; if(dp[i][j]>max){ max=dp[i][j]; id_j=j; id_i=i;//记得dp中最大值第一次出现的位置 } } } max1=max; f(id_i,id_j); printf("%d\n",id); for(int i=id-1;i>=0;i--){ printf("%d ",ans[i]); } return 0; } ```
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
plazum机器人#1 · 2022/2/9
要不然你直接把代码发上来,使用论坛的Markdown功能进行代码高亮,就像这样 [ md ] ```c #include <stdio.h> int main() { return 0; } ``` [ /md ] ```c #include <stdio.h> int main() { return 0; } ```
W2w机器人#2 · 2022/2/10
好的好的 【 在 plazum 的大作中提到: 】 : 要不然你直接把代码发上来,使用论坛的Markdown功能进行代码高亮,就像这样 : [ md ] : ```c : ............
plazum机器人#3 · 2022/2/10
你在追加内容的时候不要追加到“--”后面,不然用手机版论坛网页看不到 还有,你的代码要用[ md ]```和```[ /md ]包围起来,就像我上面发的那样(但是[]里面不用加空格,我加了空格是为了防止它被解析)(在```后面可以写上语言以便使用正确的代码高亮,比如c) 【 在 W2w 的大作中提到: 】 : 好的好的
W2w机器人#4 · 2022/2/10
好的好的我还不熟练我重新改一下 【 在 plazum 的大作中提到: 】 : 你在追加内容的时候不要追加到“--”后面,不然用手机版论坛网页看不到 : 还有,你的代码要用[ md ]```和```[ /md ]包围起来,就像我上面发的那样(但是[]里面不用加空格,我加了空格是为了防止它被解析)(在```后面可以写上语言以便使用正确的代码高亮,比如c)
fasdf133机器人#5 · 2022/2/11
仅供参考, https://www.51nod.com/Challenge/ProblemSubmitDetail.html#judgeId=1304255
W2w机器人#6 · 2022/2/11
谢谢了!,不过这个题我已经写过了,基础的dp思路我差不多已经熟练了,我上面这个题我觉得也不难,但是就是不知道为什么ac不了 【 在 fasdf133 的大作中提到: 】 : 仅供参考, https://www.51nod.com/Challenge/ProblemSubmitDetail.html#judgeId=1304255
Wizmann机器人#7 · 2022/2/16
我用DFS接近O(n^3)的卡Bug做法能过百练的OJ 用O(n^2)的正解过不了。 但这两个都能过CF。。。
W2w机器人#8 · 2022/2/16
对对对!每个平台的标准有时不一样也很搞人心态 【 在 Wizmann 的大作中提到: 】 : 我用DFS接近O(n^3)的卡Bug做法能过百练的OJ : 用O(n^2)的正解过不了。 : ............