codeforces400A - Inna and Choose Options 暴力

本文介绍了一个关于12张牌排列的问题,通过暴力搜索算法找出所有列均由X构成的排列方式。文章提供了完整的C++代码实现,并展示了如何检查特定排列是否符合条件。

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

题意:给你12张只包含X 和O的牌,问你n*m = 12 中,每一列都是X的情况有几种: 谁把这题定为DP题信不信我砍死你。

解题思路:我愚蠢的暴力

解题代码:

  1 // File Name: 400a.cpp
  2 // Author: darkdream
  3 // Created Time: 2014年07月24日 星期四 08时48分04秒
  4 
  5 #include<vector>
  6 #include<list>
  7 #include<map>
  8 #include<set>
  9 #include<deque>
 10 #include<stack>
 11 #include<bitset>
 12 #include<algorithm>
 13 #include<functional>
 14 #include<numeric>
 15 #include<utility>
 16 #include<sstream>
 17 #include<iostream>
 18 #include<iomanip>
 19 #include<cstdio>
 20 #include<cmath>
 21 #include<cstdlib>
 22 #include<cstring>
 23 #include<ctime>
 24 
 25 using namespace std;
 26 char str[100];
 27 int is(int i , int j )
 28 {
 29    for(int k = i;k <= 12;k += j)
 30    {
 31       if(str[k] == 'O')
 32           return 0;
 33    }
 34    return 1 ; 
 35 }
 36 int main(){
 37     int n;
 38     scanf("%d",&n);
 39     for(int i =1;i<= n; i ++)
 40     {    
 41         scanf("%s",&str[1]);
 42         int sum = 0 ;
 43         int ok ; 
 44         ok = 0;
 45         int a[10] = {0};
 46         for(int i =1;i <= 1;i ++)
 47         {
 48            if(is(i,1))
 49                ok = 1 ; 
 50         }
 51         if(ok)
 52             a[1]++ ;
 53         sum += ok ;
 54         ok = 0;
 55         for(int i =1;i <= 2;i += 1)
 56         {
 57            if(is(i,2))
 58                ok = 1 ; 
 59         }
 60         if(ok)
 61             a[2]++ ;
 62         sum += ok ;
 63         ok = 0;
 64         for(int i =1;i <= 3;i +=1)
 65         {
 66            if(is(i,3))
 67                ok = 1 ; 
 68         }
 69         if(ok)
 70             a[3]++ ;
 71         sum += ok ;
 72         ok = 0;
 73         for(int i =1;i <= 4;i ++)
 74         {
 75            if(is(i,4))
 76                ok = 1 ; 
 77         }
 78         if(ok)
 79             a[4]++ ;
 80         sum += ok ;
 81         ok = 0;
 82         for(int i =1;i <= 6;i ++)
 83         {
 84            if(is(i,6))
 85                ok = 1 ; 
 86         }
 87         if(ok)
 88             a[5]++ ;
 89         sum += ok ;
 90         ok = 0;
 91         for(int i =1;i <= 12;i ++ )
 92         {
 93            if(is(i,12))
 94                ok = 1 ; 
 95         }
 96         if(ok)
 97             a[6]++ ;
 98         sum += ok ;
 99         printf("%d ",sum);
100         if(a[6])
101             printf("1x12 ");
102         if(a[5])
103             printf("2x6 ");
104         if(a[4])
105             printf("3x4 ");
106         if(a[3])
107             printf("4x3 ");
108         if(a[2])
109             printf("6x2 ");
110         if(a[1])
111             printf("12x1 ");
112         printf("\n");
113     }     
114 return 0;
115 }
View Code

转载于:https://www.cnblogs.com/zyue/p/3864788.html

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值