• Codeforces Beta Round 5


    Portal.

    A. Chat Server’s Outgoing Traffic

    Portal.

    按题意模拟即可。注意 find() 函数能快速查找 string 中特定字符的位置。

    #include 
    using namespace std;
    
    int main()
    {
        string s;
        int cnt=0,ans=0;
        while(getline(cin,s))
        {
            if(s[0]=='+') cnt++;
            else if(s[0]=='-') cnt--;
            else
            {
                int p=s.find(':');
                ans+=cnt*(s.length()-p-1);
            }
        }
        cout<<ans;
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    B. Center Alignment

    Portal.

    #include 
    using namespace std;
    
    const int maxn=1005;
    char s[maxn][maxn];
    int len[maxn];
    
    int main()
    {
    	int cnt=0,mxlen=0;
    	while(gets(s[cnt]))
    	{
    		len[cnt]=strlen(s[cnt]);
    		mxlen=max(mxlen,len[cnt]);
    		++cnt;
    	}
    	--cnt;
    	for(int i=1;i<=mxlen+2;i++) cout<<"*";
    	cout<<endl;
    	bool flag=0;
    	for(int i=0;i<=cnt;i++)
    	{
    		cout<<"*";
    		if(!len[i]) for(int j=1;j<=mxlen;j++) cout<<" ";
    		else
    		{
    			int p;
    			if((mxlen-len[i])%2)
    			{
    				if(!flag)
    				{
    					int p=(mxlen-len[i]-1)/2;
    					for(int j=1;j<=p;j++) cout<<" ";
    					cout<<s[i];
    					for(int j=1;j<=p+1;j++) cout<<" ";
    					flag=1;
    				}
    				else
    				{
    					int p=(mxlen-len[i]+1)/2;
    					for(int j=1;j<=p;j++) cout<<" ";
    					cout<<s[i];
    					for(int j=1;j<=p-1;j++) cout<<" ";
    					flag=0;
    				}
    			}
    			else
    			{
    				int p=(mxlen-len[i])/2;
    				for(int j=1;j<=p;j++) cout<<" ";
    				cout<<s[i];
    				for(int j=1;j<=p;j++) cout<<" ";
    			}
    		}
    		cout<<"*"<<endl;
    	}
    	for(int i=1;i<=mxlen+2;i++) cout<<"*";
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    C. Longest Regular Bracket Sequence

    Portal.

    DP。

    f i f_i fi 表示以 i i i 为结尾的最长括号序列长度。用栈维护括号序列,如果当前元素为 ( \texttt{(} (,入栈;否则若栈非空,以当前元素为结尾的最长括号序列长度即为该元素到当前栈顶元素的长度与以栈顶元素的前一个元素为结尾的最长括号序列长度。

    #include 
    using namespace std;
    typedef long long ll;
    
    const int maxn=1e6+5;
    int sta[maxn],f[maxn],cnt[maxn],top;
    bool vis[maxn];
    char s[maxn];
    
    int main()
    {
        cin>>(s+1);
        cnt[0]=1;
        for(int i=1;i<=strlen(s+1);i++)
        {
            if(s[i]=='(') sta[++top]=i;
            else if(top) f[i]=i-sta[top]+1+f[sta[top]-1],top--,cnt[f[i]]++;
        }
        for(int i=strlen(s+1);i>=0;i--)
            if(cnt[i]){cout<<i<<' '<<cnt[i]<<'\n';break;}
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    Django笔记十一之外键查询优化select_related和prefetch_related
    SpringMVC的响应处理
    NNDL 作业8:RNN - 简单循环网络
    mysql数据库的全量与增量的备份以及恢复
    Linux ——目录结构
    如何在Xshell上运行一个C文件?
    【JavaScript进阶之旅 ES6篇 第七章】箭头函数的实质、箭头函数this指向、箭头函数的使用场景
    html实现竖直步骤条
    AWVS的简介与安装
    SpringCloud的新闻资讯项目09 --- 用户行为-需求和接口文档
  • 原文地址:https://blog.csdn.net/ncwzdlsd/article/details/134337868