• 【Educational Codeforces Round 88 (Rated for Div. 2) B】New Theatre Square


    题目链接

    【题目翻译】

    让你用1*1和1*2的砖块铺满空白的格子。

    1*2的砖块只能横着放。

    用11的砖块代价是x,12的代价则是y.

    问你需要的最小代价。

    【题解】

    看到1*2只能横着放。问题就简单多了。

    若x2<=y则直接放11的就行了。

    否则1*2可以放久放这个。(单位格子价格更低);

    【代码】

    /*
        显然有的性质:
        如果x*2<=y
            那肯定直接用1*1的了。
        如果x*2>y
            像这种情况,怎么知道要竖着放还是横着放?
            ...
            .
    */
    #include<bits/stdc++.h>
    #define ll long long
    #define rei(x) scanf("%d",&x)
    #define rel(x) scanf("%I64d",&x)
    #define rep1(i,a,b) for (int i = a;i <= b;i++)
    #define rep2(i,a,b) for (int i = a;i >= b;i--)
    using namespace std;
    
    const int N = 1000;
    
    int T,n,m,x,y;
    char s[N+10][N+10];
    
    int main(){
        //cout<<(1LL<<62)<<endl;
        #ifdef LOCAL_DEFINE
            freopen("D:\rush.txt","r",stdin);
        #endif
        rei(T);
        while (T--){
             rei(n);rei(m);rei(x);rei(y);
             rep1(i,1,n){
                 scanf("%s",s[i]+1);
             }
             int tot = 0;
             rep1(i,1,n){
                rep1(j,1,m){
                    if (s[i][j]=='.'){
                        if (x*2<=y){
                            s[i][j]='*';
                            tot+=x;
                        }else{
                            if (j+1<=m && s[i][j+1]=='.'){
                                s[i][j]='*';
                                s[i][j+1]='*';
                                tot+=y;
                            }else{
                                s[i][j]='*';
                                tot+=x;
                            }
                        }
                    }
                }
             }
             printf("%d
    ",tot);
        }
        return 0;
    }
    
  • 相关阅读:
    JDBC
    两道关于回溯法,分支限界法的算法题
    旅行售货员问题
    jdbc学习
    mysql简单练习
    取会邮件客户端中的密码
    触发器的使用
    事务的数据一致性测试
    读取其他软件listview控件的内容
    sqlserver2008 ,只能选C盘目录,不能选其它盘目录
  • 原文地址:https://www.cnblogs.com/AWCXV/p/12985277.html
Copyright © 2020-2023  润新知