Discuz! Board

 找回密码
 立即注册
查看: 62|回复: 4

20241026课程记录|陈鸿宇|编程练习

[复制链接]

574

主题

758

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435189

烈空座 Lv:100
发表于 2024-10-26 21:38:15 | 显示全部楼层 |阅读模式
家长你好,陈鸿宇同学20241026学习内容如下:
【课堂内容】
1.分析最长下坡路问题中的环路数据;
2.辅助同学完成方格取数问题;
3.辅助同学完成优秀的拆分问题;
4.讨论算24中的深搜策略。

【学情分析】
本次课程为习题课,通过数道典型例题的编写练习帮助同学发现编程过程中的疏漏,理清解题策略。课上小陈同学表现良好,能及时表达个人意见,参与到问题讨论,提出不同见解,值得表扬。
【课后作业】
完成方格取数问题。


回复

使用道具 举报

3

主题

11

帖子

1306

积分

金牌会员

Rank: 6Rank: 6

积分
1306
发表于 2024-10-27 11:47:58 | 显示全部楼层
老师帮忙看一下
已知有7个小组换座位,座位如图所示
6  7
3  4  5
  1  2
要求,每个小组调换后不在同一行上,且每个小组都要调换
问有几种方案,并输出调换方式。
回复

使用道具 举报

574

主题

758

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435189

烈空座 Lv:100
 楼主| 发表于 2024-10-27 20:12:27 | 显示全部楼层
ice_pick 发表于 2024-10-27 11:47
老师帮忙看一下
已知有7个小组换座位,座位如图所示
6  7

[C] 纯文本查看 复制代码
#include<bits/stdc++.h>          
using namespace std;

int a[3][3]={//座位表 
	6,7,-1,
	3,4,5,
	1,2,-1
	}; 
int f[3][3]={//标记 
	0,0,-1,
	0,0,0,
	0,0,-1
	}; 
struct student{
	int x1,y1;//原来位置
	int x2,y2;//调整后位置 
	int num;//学号 
}stu[8]; 
int cnt;//计数 

bool check(int n,int x,int y)//检查n号同学调换到xy后 是否与原同桌不在同一行 
{
	for(int i=1;i<=7;i++){//检查其他同学 
		if((stu[n].x1==stu[i].x1)&&(x==stu[i].x2)){//原行数相同  调整后行数相同
			return false; 
		} 
	}
	return true;
}

void dfs(int n)
{
	for(int i=0;i<3;i++){ //位置遍历 
		for(int j=0;j<3;j++){
			if((f[i][j]==0) && a[i][j]!=n && check(n,i,j)){ //位置未标记 不是原位置  不同行 
				f[i][j]=n;//标记
				stu[n].x2=i;
				stu[n].y2=j;//记录新坐标
				if(n==7){//七个人排完了 
					for(int k=0;k<3;k++){//打印输出 
						for(int l=0;l<3;l++){
							if(f[k][l]>0)
								cout<<f[k][l]<<" ";
						}
						cout<<endl;
					}
					cout<<endl;
					cnt++; 
				}
				else{
					dfs(n+1);
				}
				f[i][j]=0;//回溯 
				stu[n].x2=-1;
				stu[n].y2=-1;
			}
		}
	}
} 

int main()
{
	for(int i=0;i<3;i++){
		for(int j=0;j<3;j++){
			if(a[i][j]>0){
				stu[a[i][j]].x1=i;//原位置 
				stu[a[i][j]].y1=j;
				stu[a[i][j]].x2=-1;//调整后位置 
				stu[a[i][j]].y2=-1;
			}		 
		}
	}
	dfs(1);
	cout<<cnt;	
    return 0;
}

回复

使用道具 举报

574

主题

758

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435189

烈空座 Lv:100
 楼主| 发表于 2024-10-27 20:12:59 | 显示全部楼层
深搜解的
480种
回复

使用道具 举报

3

主题

11

帖子

1306

积分

金牌会员

Rank: 6Rank: 6

积分
1306
发表于 2024-10-27 21:57:41 | 显示全部楼层
谢谢老师
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-2-13 05:02 , Processed in 0.055168 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表