zoukankan      html  css  js  c++  java
  • 模拟赛2020.9.11

    题目背景
    bleaves最近在wzoi上面做题。

    wzoi的题目有两种,一种是noip题,一种是省选题。

    bleaves的做题方式很特别。每一天,她可能会看一道题目,这时她会选择题目种类,

    然后wzoi会在选定种类中随机扔给她一道她还没看过的题,她会把这道题看一遍,

    然后存在脑子里慢慢思考;她也有可能写题,

    这时她一定会写没写过的题中看的时间最迟的一题(如果不存在没写过的且没看过的题,她就不能写题)。

    题目描述

    wzoi每天会有一个推荐的题目种类,

    如果bleaves看一道题目:如果种类和推荐的相同,那么这道题目最大得分为10,否则为5

    如果bleaves写一道题目:如果种类和推荐的相同,那么这道题目得分为最大得分,否则为最大得分-5

    假如bleaves现在还没看过任何一题,并且她知道了wzoi接下来一些天每天推荐的种类,问她在这些天的最大得分。

    输入格式

    一行一个01串s,|s|表示天数,(s_i=0)

    表示wzoi第i天推荐noip题,

    (s_i=1)表示wzoi第i天推荐省选题。

    输出格式

    一行一个整数最大得分。

    输入输出样例

    输入 #1复制

    0011
    

    输出 #1复制

    20
    

    输入 #2复制

    0101
    

    输出 #2复制

    10
    

    输入 #3复制

    0110
    

    输出 #3复制

    20
    

    思路

    如果 s 中有两个连续的1或0,那么可以让他们匹配,然后删去他们,递归处理。

    最终剩下来的一定是1,0交错,这时一定无法让两个相同种类匹配了,贡献可以直接算。

    #include<bits/stdc++.h>
    using namespace std;
    stack<char> s;
    const int maxn=1001000;
    string ch;
    long long ans;
    int main()
    {
        cin>>ch;
    	int len=ch.length();
    	for(int i=1;i<=len-1;i++)
    	{
    		
    		if(s.empty()||s.top()!=ch[i])
    			s.push(ch[i]);
    	    else
    		{
    		      ans+=10;
    		      s.pop();
    		}
    	}
    	ans+=(s.size()/2)*5;
    	cout<<ans<<endl;
    	return 0;
    }
    
  • 相关阅读:
    修改MySQL数据文件的位置
    服务名无效。请键入 NET HELPMSG 2185 以获得更多的帮助。
    索引的讲解
    运行php程序时,浏览器跳出打开和保存提示框
    ora-4031错误
    MySQL_Oracle_事物的隔离级别
    GNU与Linux
    计算机网络_第一章
    Linux网卡高级命令
    Linux RAID简介
  • 原文地址:https://www.cnblogs.com/bangdexuanyuan/p/13654677.html
Copyright © 2011-2022 走看看