[湖南大学程序设计实训训练作业一]13.开关与灯(这题挺有意思!)

【问题描述】

给定n个开关和m个灯,第i个开关只能打开部分灯。矩阵a包含n行m列,当aij=1时表示开关i可以打开灯j,否则aij=0。

开始时所有的m个灯都是关着的。

开关只能从状态"关"到"开"。这意味着,对于每个可以打开某个灯的开关,无论你按多少次,这个灯都是开的。

确保当你按下所有开关时,所有的灯都能打开,考虑是否可以忽略其中某个开关也能打开所有的灯。

你的任务是确定是否存在这样的开关可以忽略,而使用其余的n-1个开关来打开所有m个灯。

【输入形式】

输入第1行包含两个整数n和m(1<=n, m<=2000),表示开关的数量和灯的数量。

接下来的n行,每行包含m个字符,字符aij=1时表示开关i可以打开灯j,否则aij=0。

【输出形式】

如果存在这样的可以忽略的开关,而使用其他n-1个开关打开所有的m个灯,输出"YES",否则输出"NO"。

【样例输入】

4 5
10101
01000
00111
10000

【样例输出】

YES

题解

思路

  • 1.首先我们要对每一列求和,那么我们得到m个和,如果有一个和为0就说明:这个灯没被开过呗(当然要记录结果哦)
  • 2.我们用这个和减去之前n中某一次(遍历),如果有一个值为0就说明不行,我们遍历下一个。
  • 3.有一次遍历每个值都不为0,那么就说明n-1个开关可以开m个灯
  • 4.遍历完都没找到那就找不到了

代码

#include<iostream>
#include<vector>
using namespace std;
int main(){
	int n,m;
	cin>>n>>m;
	vector<int> res(m,0);
	vector<vector<int> > map(m);
	for(int i=0;i<n;i++){
		string s;
		cin>>s; 
		for(int j=0;j<m;j++){		
			map[i].push_back(s[j]-'0');//记录输入,方便后面减去 
			res[j]+=map[i][j];//求出m个灯每个灯可以被多少个开关控制
		}
	}
	for(int i=0;i<n;i++){
		int j;
		for(j=0;j<m;j++){
			int temp=res[j]-map[i][j];
			if(temp<=0) break;//减去某一次开关。如果有个灯没亮,说明不能不开这个开关 
		}
		if(j==m) {
			cout<<"YES"<<endl;return 0;//j==m说明减去后,灯还是全亮的 
		}
	}
	cout<<"NO"<<endl;//一直没yes就no了呗 
	return 0;
} 
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了将JSP程序与SQL Server数据库连接,我们需要首先在JSP程序中使用Java数据库连接(JDBC)来实现这一连接。首先,我们需要确保在项目中引入了SQL Server的JDBC驱动程序。然后,在JSP程序中编写数据库连接的代码,以确保能够连接到SQL Server数据库。 首先在JSP程序中导入相应的类库,比如导入java.sql包下的相关类。然后在代码中使用JDBC的API来连接到SQL Server数据库,需要提供数据库连接的URL、用户名和密码等信息。例如: ``` String url = "jdbc:sqlserver://localhost:1433;databaseName=yourDBName"; String username = "yourUsername"; String password = "yourPassword"; Connection connection = DriverManager.getConnection(url, username, password); ``` 在以上代码中,我们使用了Java的java.sql包中的类来获取数据库连接,并指定了数据库的连接信息,包括URL、用户名和密码等。 接下来,我们可以使用获取到的Connection对象来执行SQL语句,从数据库中读取或写入数据。例如: ``` Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM yourTable"); ``` 在这段代码中,我们使用Connection对象来创建Statement对象,并使用该对象来执行SQL查询语句,然后获取结果集进行处理。 总之,通过以上的操作,我们可以将JSP程序与SQL Server数据库连接起来,实现对数据库的操作。当然,在实际的项目中,还需要注意数据库连接的安全性和性能等问题,以确保程序能够稳定、高效地与数据库交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值