解题思路:
注意事项:注意糖块融合后形成的糖块和后面一个糖块可以融合
参考代码:
#include<bits/stdc++.h> using namespace std; int f(int x[][3],int s[],int k,int m) { for(int i=0;i<m;i++) { if((s[k]==x[i][1]&&s[k-1]==x[i][0])||(s[k]==x[i][0]&&s[k-1]==x[i][1])) { s[k]=0;//怕出错所以等于0 s[k-1]=x[i][2]; return 1; } } return 0; } int main() { int n,m; int x[100][3]; cin>>n>>m; for(int i=0;i<m;i++) { for(int j=0;j<3;j++) { cin>>x[i][j]; } } int k; cin>>k; int s[100005]; for(int i=1;i<=k;i++) { cin>>s[i]; while(f(x,s,i,m))//解决糖块融合后形成的糖块和后面一个糖块可以融合 { k--;//融合后糖块总数量减一 i--;//下标退到融合后的糖块上,因为for循环中是i++所以最后输入新糖块的时候会移动到融合糖块的前一个 } } for(int i=1;i<=k;i++) { cout<<s[i]<<' '; } return 0; }
0.0分
0 人评分
简单的a+b (C语言代码)浏览:530 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:756 |
字符串比较 (C语言代码)答案错误????浏览:597 |
P1001 (C语言代码)浏览:801 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1162 |
C语言训练-亲密数 (C语言代码)浏览:682 |
printf基础练习2 (C语言代码)浏览:618 |
矩形面积交 (C++代码)浏览:1130 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:643 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:676 |