面积问题最简做法

1、编程计算由“*”号围成的下列图形的面积。面积计算方法是统计*号所围成的闭合曲线中水平线和垂直线交点的数目。如下图所示,在10*10的二维数组中,有“*”围住了15个点,因此面积为15。
【样例输入】 area.in
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 0 0 1 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 0 1 0
0 1 0 1 0 1 0 0 1 0
0 1 0 0 1 1 0 1 1 0
0 0 1 0 0 0 0 1 0 0
0 0 0 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 0
【样例输出】 area.out
15

 

 1 #include<iostream>
 2 using namespace std;
 3 int xx[5]={-1,+1,0,0};
 4 int yy[5]={0,0,-1,+1};
 5 int a[101][101];
 6 void dfs(int i,int j)
 7 {
 8     a[i][j]=1;
 9     for(int k=0;k<4;k++)
10     {
11         int x=i+xx[k];
12         int y=j+yy[k];
13         if(x>=1&&x<=10&&y>=1&&y<=10&&a[x][y]==0)
14         {
15             
16             dfs(x,y);
17         }
18     }
19 }
20 int main()
21 {
22     for(int i=1;i<=10;i++)
23     {
24         for(int j=1;j<=10;j++)
25         {
26             cin>>a[i][j];
27         }
28     }
29     for(int i=1;i<=10;i++)
30     {
31         if(a[1][i]==0)
32         {
33             dfs(1,i);
34         }
35         if(a[i][1]==0)
36         {
37             dfs(i,1);
38         }
39         if(a[10][i]==0)
40         {
41             dfs(10,i);
42         }
43         if(a[i][10]==0)
44         {
45             dfs(i,10);
46         }
47     }
48     int tot=0;
49     for(int i=1;i<=10;i++)
50     {
51         for(int j=1;j<=10;j++)
52         {
53             if(a[i][j]==0)
54             tot++;
55         }
56     }
57     cout<<tot;
58     return 0;
59 }

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在特征工程阶段,我们可以通过特征组合的方式来提高模型的准确度。以下是一些特征组合的方式: 1. 时间特征组合:可以将下单时间和制作完成时间之间的时间差作为一个新的特征。例如,我们可以计算出顾客等待奶茶制作完成的时间。 2. 地理位置特征组合:可以将门店地址、省份、城市和区域等特征组合起来,构建一个新的特征,例如门店所在城市的繁忙程度、门店所在区域的人口密度等。 3. 奶茶特征组合:可以将奶茶杯型、奶茶做法和奶茶名称等特征组合起来,构建一个新的特征,例如奶茶的甜度、奶茶的口感等。 下面是一个简单的Python代码示例,展示如何使用特征组合的方式提高模型准确度: ```python import pandas as pd from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split # 读取数据 data = pd.read_csv('data.csv') # 特征工程 data['wait_time'] = data['制作完成时间'] - data['下单时间'] # 时间特征组合 data['location'] = data['门店地址'] + ' ' + data['省份'] + ' ' + data['城市'] + ' ' + data['区域'] # 地理位置特征组合 data['tea_type'] = data['奶茶杯型'] + ' ' + data['奶茶做法'] + ' ' + data['奶茶名称'] # 奶茶特征组合 # 选择特征和标签 X = data[['门店面积', '支付类型', 'wait_time', 'location', 'tea_type']] y = data['奶茶制作完成时间'] # 将特征转换为数值类型 X = pd.get_dummies(X) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 构建模型 model = RandomForestRegressor(n_estimators=100, random_state=42) # 拟合模型 model.fit(X_train, y_train) # 预测测试集 y_pred = model.predict(X_test) # 计算误差 mse = mean_squared_error(y_test, y_pred) print('MSE:', mse) ``` 在上述代码,我们首先读取数据,然后进行特征工程,使用时间特征组合、地理位置特征组合和奶茶特征组合等方式构建新的特征。然后,我们选择特征和标签,并将特征转换为数值类型。接着,我们划分训练集和测试集,并构建随机森林回归模型。最后,我们拟合模型,并计算误差。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值