poj 3254 Corn Fields (状态 dp)

本文介绍了一种使用状态动态规划解决在一个row*col矩阵中放置牛的问题,矩阵中的每个格子可能允许或不允许放置牛,且相邻格子不能同时放置。通过正确的状态转移方程实现了有效的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题意:一个row*col的矩阵,每个格子是0或者1,1表示土壤肥沃可以种植草地,0则不可以。在种草地的格子可以放牛,但边相邻的两个格子不允许同时放牛,问总共有多少种放牛的方法?(不放牛也算一种情况)

 https://i-blog.csdnimg.cn/blog_migrate/ed1e185ed2e97a674d722dfa20aecc16.png


 

 

/*
折腾了 半个下午 和一个晚上 ,终于 把这道 状态dp 的题给 A 了,兴奋一下。。。。
前后想了 三个状态方程,前两个 被 k 掉了

我的一个错的 状态方程是
  dp[r] = (第 r 行 合适的状态 个数) * dp[r - 1];
  dp[r] 表示 从 第 0行 到 第 r 行的最大值
  这个 最后 验证是错的 ,忽略了 r-1 行 和 r 行 不 匹配的情况
 
 
 
  正确的 状态转移方程式 :(和 错的 就差那么一点)
   dp[r][i] = 求和 dp[r - 1][j]  ; 表示 第 r 行为 i 状态时 的最大值  它 == r-1 行所有合适的 状态 j 的 和 ;
    
*/

 

 1 #include<stdio.h>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 #include<queue>
 7 #include< set>
 8 #include<map>
 9  #define Min(a,b)  a>b?b:a
10  #define Max(a,b)  a>b?a:b
11  #define CL(a,num)  memset(a,num,sizeof(a));
12  #define inf 9999999
13  #define maxn 400
14  #define mod 100000000
15  #define eps  1e-6
16  #define ll long long
17  using  namespace std;
18 ll dp[ 15][ 400];
19  int stat[ 400],cnt ,mat[ 15];
20  bool ok( int x)
21 {
22      if(x & (x<< 1))  return  false ;
23 
24      return  true ;
25 }
26  void find( int x)
27 {
28      for( int  i =  0 ; i < ( 1 << x);++i)
29     {
30          if(ok(i))
31         {
32             stat[cnt++] = i;
33         }
34     }
35 }
36  int main()
37 {
38      int  n,m,i,j,a;
39      while(scanf( " %d%d ",&n,&m)!=EOF)
40     {
41         cnt =  0 ;
42         CL(mat,  0);
43             for( i =  0 ; i < n ; ++i)
44            {
45                 for( j  =  0;j < m ;++j)
46                {
47                    scanf( " %d ",&a);
48                     if(a ==  0) mat[i]|= ( 1 << j);
49                }
50            }
51 
52            find(m);
53         
54            CL(dp, 0);
55             for( i =  0 ; i < cnt; ++i) // 第 0 行 特殊 处理
56             {
57                 if(!(stat[i]&mat[ 0]))
58                {
59 
60                    dp[ 0][i]++;
61                }
62            }
63 
64 
65 
66             int r,f;
67             for( r =  1; r < n ; ++r)
68            {
69 
70                 for(i =  0; i < cnt; ++i)
71                {
72 
73                      if(stat[i]&mat[r]) continue ;
74 
75                      for(j =  0 ; j < cnt; ++j)
76                     {
77                          if(stat[j]&mat[r -  1]) continue ;
78                          if((stat[i]&stat[j])) continue ;
79                         dp[r][i] += dp[r -  1][j] ;  
80 
81                     }
82 
83 
84 
85                }
86            }
87 
88              ll ans =  0;
89               for( i =  0 ; i < cnt ; ++i)
90              {
91                   if(stat[i]&mat[n -  1]) continue ;
92                  ans += dp[n -  1][i];
93                  ans %= mod;
94              }
95            printf( " %lld\n ",ans%mod);
96 
97 
98     }
99 }

 

 

 

转载于:https://www.cnblogs.com/acSzz/archive/2012/08/12/2635500.html

内容概要:《中文大模型基准测评2025年上半年报告》由SuperCLUE团队发布,详细评估了2025年上半年中文大模型的发展状况。报告涵盖了大模型的关键进展、国内外大模型全景图及差距、专项测评基准介绍等。通过SuperCLUE基准,对45个国内外代表性大模型进行了六大任务(数学推理、科学推理、代码生成、智能体Agent、精确指令遵循、幻觉控制)的综合测评。结果显示,海外模型如o3、o4-mini(high)在推理任务上表现突出,而国内模型如Doubao-Seed-1.6-thinking-250715在智能体Agent和幻觉控制任务上表现出色。此外,报告还分析了模型性价比、效能区间分布,并对代表性模型如Doubao-Seed-1.6-thinking-250715、DeepSeek-R1-0528、GLM-4.5等进行了详细介绍。整体来看,国内大模型在特定任务上已接近国际顶尖水平,但在综合推理能力上仍有提升空间。 适用人群:对大模型技术感兴趣的科研人员、工程师、产品经理及投资者。 使用场景及目标:①了解2025年上半年中文大模型的发展现状与趋势;②评估国内外大模型在不同任务上的表现差异;③为技术选型和性能优化提供参考依据。 其他说明:报告提供了详细的测评方法、评分标准及结果分析,确保评估的科学性和公正性。此外,SuperCLUE团队还发布了多个专项测评基准,涵盖多模态、文本、推理等多个领域,为业界提供全面的测评服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值