• Codeforces Round #508 (Div. 2)【A,B,C,D】【实验室日常周赛训练】


     1 #include<bits/stdc++.h>
     2 
     3 using namespace std;
     4 #define inf 0x3f3f3f3f3f3f
     5 #define int long long 
     6 int vis[150];
     7 signed main(){
     8     int n,k;
     9     cin>>n>>k;
    10     string str;
    11     cin>>str;
    12     map<int,int> mp;
    13     int sum=0;
    14     for(int i=0;i<str.size();i++){
    15         if(!mp[str[i]-'A']){
    16             mp[str[i]-'A']=1;
    17             sum++;
    18         }
    19         vis[str[i]-'A']++;
    20     }
    21     if(sum==k){
    22         int ans=inf;
    23         for(int i=0;i<k;i++){
    24             ans=min(ans,vis[i]);
    25         }
    26         //cout<<ans<<'
    ';
    27         cout<<ans*k;
    28     }else{
    29         cout<<"0";
    30     }
    31     return 0;
    32 } 

     思路:猜了一个想法,就过了。

     1 #include<bits/stdc++.h>
     2 
     3 using namespace std;
     4 #define int long long
     5 
     6 signed main(){
     7     int n;
     8     cin>>n;
     9     if(n==1||n==2){
    10         cout<<"No";return 0; 
    11     }
    12     printf("Yes
    ");
    13     int m=n/2;
    14     if(n%2){
    15         int s1=0,s2=0;
    16         printf("%lld ",1+m);
    17         for(int i=1;i<=n;i+=2){
    18             printf("%lld ",i);
    19             s1+=i;
    20         }
    21         printf("
    ");
    22         printf("%lld ",m);
    23         for(int i=2;i<=n;i+=2){
    24             printf("%lld ",i);
    25             s2+=i;
    26         }
    27         printf("
    ");
    28     //    cout<<__gcd(s1,s2)<<'
    ';
    29     }else{
    30         int s1=0,s2=0;
    31         printf("%lld ",m);
    32         for(int i=1;i<=n;i+=2){
    33             printf("%lld ",i);
    34             s1+=i;
    35         }
    36         printf("
    ");
    37         printf("%lld ",m);
    38         for(int i=2;i<=n;i+=2){
    39             printf("%lld ",i);
    40             s2+=i;
    41         }
    42         printf("
    ");
    43     //    cout<<__gcd(s1,s2)<<'
    ';
    44     }
    45     return 0;
    46 }
    47 /*
    48 
    49 */

     思路:贪心+模拟【判断应该加自己和移除对手的值哪一个大。优先队列维护最大值】

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define int long long
     4 #define N 10050005
     5 priority_queue <int,vector<int>,less<int> >q1;
     6 priority_queue <int,vector<int>,less<int> >q2;
     7 int a[N];
     8 int b[N];
     9 signed main(){
    10     int n;cin>>n;
    11     for(int i=1;i<=n;i++){
    12         cin>>a[i];
    13         q1.push(a[i]);
    14     }
    15     for(int i=1;i<=n;i++){
    16         cin>>b[i];
    17         q2.push(b[i]);
    18     }
    19     int suma=0,sumb=0;
    20     int now=0;
    21     while(1){
    22         now++;
    23         if(q1.empty()&&q2.empty()){
    24             break;
    25         }
    26         int t1=0,t2=0;
    27         if(now%2){//A
    28             if(!q1.empty()&&!q2.empty()){
    29                 t1=q1.top();
    30                 t2=q2.top();
    31                 if(t1>t2){
    32                     q1.pop();
    33                     suma+=t1;
    34                 }else{
    35                     q2.pop();
    36                 }
    37             }else if(q1.empty()&&!q2.empty()){
    38                 q2.pop();
    39             }else if(!q1.empty()&&q2.empty()){
    40                 suma+=q1.top();
    41                 q1.pop();
    42             
    43             }
    44             
    45         }else{
    46             if(!q1.empty()&&!q2.empty()){
    47                 t1=q1.top();
    48                 t2=q2.top();
    49                 if(t2>t1){
    50                     q2.pop();
    51                     sumb+=t2;
    52                 }else{
    53                     q1.pop();
    54                 }
    55             }else if(q1.empty()&&!q2.empty()){
    56                 sumb+=q2.top();
    57                 q2.pop();
    58             }else if(!q1.empty()&&q2.empty()){
    59                 q1.pop();
    60             }
    61             
    62         }
    63     }
    64     //cout<<suma<<" "<<sumb<<'
    ';
    65     cout<<suma-sumb;
    66     return 0;
    67 }

     1 #include<bits/stdc++.h>
     2  
     3 using namespace std;
     4 #define int long long
     5 #define inf 1<<30
     6 #define N 10005000
     7 int arr[N];
     8 signed main(){
     9     int n;cin>>n;
    10     if(n==1)
    11     {
    12         int qwq;
    13         cin>>qwq;
    14         cout<<qwq<<endl;return 0;
    15     }
    16     int flag1=0;int flag2=0;
    17     int sum1=0;int minx=inf;
    18     for(int i=1;i<=n;i++) {
    19         cin>>arr[i];
    20         sum1+=abs(arr[i]);
    21         if(arr[i]<0){
    22             flag1=1;
    23         }else if(arr[i]>0){
    24             flag2=1;
    25         }
    26         minx=min(minx,abs(arr[i]));
    27     }
    28     if(flag1&&flag2){
    29         cout<<sum1;
    30     }else{
    31         cout<<sum1-abs(minx)*2;
    32     }
    33     return 0;
    34 }
  • 相关阅读:
    PHP中获取当前页面的URL信息
    $_POST和$GLOBALS['HTTP_RAW_POST_DATA'] 的区别
    curl模拟ip和来源进行网站采集的实现方法
    mysql修改root密码的几种方法
    微信小程序实现支付功能
    git获取远程服务器的指定分支
    mysql函数技巧整理
    sql 查询目标数据库中所有的表以其关键信息
    SET NOCOUNT ON
    C# CultureInfo中常用的InvariantCulture
  • 原文地址:https://www.cnblogs.com/pengge666/p/12019038.html
Copyright © 2020-2023  润新知