• Hello 2019【A,B,C】


     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define int long long
     4 signed main(){
     5     string str;
     6     cin>>str;
     7     int flag=0;
     8     for(int l=0;l<5;l++){
     9         string t;
    10         cin>>t;
    11         for(int i=0;i<t.size();i++){
    12             for(int j=0;j<str.size();j++){
    13                 if(str[j]==t[i]){
    14                     flag=1;
    15                 }
    16             }
    17         }
    18     }
    19     if(flag){
    20         cout<<"YES";
    21     }else{
    22         cout<<"NO";
    23     }
    24     return 0;
    25 }

     直接暴力就过了。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define int long long
     4 int arr[30];
     5 int ans[30];
     6 signed main(){
     7     int n;cin>>n;
     8     for(int i=1;i<=n;i++){
     9         cin>>ans[i];
    10         arr[i]=1;
    11     } 
    12     int flag=0;
    13     for(int i=0;i<=n;i++){
    14         for(int j=0;j<=25;j++) arr[i]=1;
    15         for(int j=0;j<i;j++) arr[j]=-1;
    16         do{
    17             int sum=0;
    18             for(int k=1;k<=n;k++){
    19                 sum+=ans[k]*arr[k];
    20             }
    21             if(sum%360==0||sum==0){
    22             //    for(int k=1;k<=n;k++) cout<<arr[k]<<" ";
    23             //    cout<<'
    ';
    24                 flag=1;
    25                 break;
    26             }
    27         }while(next_permutation(arr+1,arr+n+1));
    28         if(flag){
    29             break;
    30         }
    31     }
    32     if(flag) cout<<"YES";
    33     else cout<<"NO";
    34     return 0;
    35 }

    题意:有n个只含有'('和')'的字符串,现在要字符串两两拼接,如果一个拼接后的字符串中的括号都配对了就称为完美匹配,问最多有几个完美匹配。(())就算一个完美匹配,))((或者())就不算。

    直接将每对中合法的先抛掉,然后取最值。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define int long long
     4 int vis1[500900];
     5 int vis2[500900];
     6 signed main(){
     7     int n;cin>>n;int add=0;
     8     for(int i=1;i<=n;i++){
     9         string str;
    10         cin>>str;
    11         stack<char> s;
    12         for(int j=0;j<str.size();j++){
    13             if(s.empty()){
    14                 s.push(str[j]);
    15             }else{
    16                 char temp=s.top();
    17                 if(temp=='('&&str[j]==')'){
    18                     s.pop();
    19                 }else{
    20                     s.push(str[j]);
    21                 }
    22             }
    23         }
    24             if(s.empty()){
    25                 add++;
    26             }else{
    27                 int flag1=0;
    28                 int flag2=0;
    29                 int num=s.size();
    30                 while(!s.empty()){
    31                     char t=s.top();s.pop();
    32                     if(t=='('){
    33                         flag1=1;
    34                     }else{
    35                         flag2=1;
    36                     }
    37                 } 
    38                 if(flag1&&flag2){
    39                     continue;
    40                 }else if(flag1&&!flag2){
    41                     vis1[num]++;
    42                 }else if(!flag1&&flag2){
    43                     vis2[num]++;
    44                 }
    45             }              
    46         
    47     }            
    48     int ans=add/2;
    49     for(int i=1;i<=500000;i++){
    50         ans+=min(vis1[i],vis2[i]);
    51     }
    52     cout<<ans<<'
    ';            
    53     return 0;
    54 }
  • 相关阅读:
    用BAT执行python文件
    python写MD5翻译器
    python操作数据库
    百度哪些事
    Python基础教程笔记——使用字符串
    python操作webservices
    Export to Microsoft Excel On a Dynamics AX Form With Multiple Data Sources【转】
    ログインユーザーの権限をJavaScriptでチェックする
    使用JSOM检查文件或文件夹是否存在
    在SharePoint 2013 Wiki Page中使用用户选择对话框
  • 原文地址:https://www.cnblogs.com/pengge666/p/12070361.html
Copyright © 2020-2023  润新知