zoukankan      html  css  js  c++  java
  • 561 div2

    A. Silent Classroom

    题意: 有一些同学  如果其名字首字母相同的话  如果分到同一个教室  那么会增加1该教室的吵闹值  (每一对增加一    3个人名字首字母相同的话会增加3 )一共有两个教室  求最小吵闹值之和(两个教室的)

    贪心:显然  姓氏相同的人对半分到两个教室即可  而且吵闹值有等差公式求和规律

     #include<bits/stdc++.h>
    using namespace std;
    //input by bxd
    #define rep(i,a,b) for(int i=(a);i<=(b);i++)
    #define repp(i,a,b) for(int i=(a);i>=(b);--i)
    #define RI(n) scanf("%d",&(n))
    #define RII(n,m) scanf("%d%d",&n,&m)
    #define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
    #define RS(s) scanf("%s",s);
    #define ll long long
    #define pb push_back
    #define REP(i,N)  for(int i=0;i<(N);i++)
    #define CLR(A,v)  memset(A,v,sizeof A)
    //////////////////////////////////
    #define inf 0x3f3f3f3f
    const int N=200;
    
    int a[N];
    int main()
    {
        int n;
        char s[N];
        RI(n);
        int ans=0;
        while(n--)
        {
            RS(s);
            a[s[0]-'a'+1]++;
        }
        rep(i,1,26)
        if(a[i]>=3)
        {
            int q=a[i]/2,w=a[i]-q;
            q--;w--;
            ans+=(1+q)*q/2;
            ans+=(1+w)*w/2;
        }
        cout<<ans;
    
        return 0;
    }
    View Code

    B. All the Vowels Please

    题意:给出一个数k  要求将其表示为k个格子   这些格子形成一个矩形  这个矩形每行每列都有5个元音 aeiou 

    错着排即可:

    #include<bits/stdc++.h>
    using namespace std;
    //input by bxd
    #define rep(i,a,b) for(int i=(a);i<=(b);i++)
    #define repp(i,a,b) for(int i=(a);i>=(b);--i)
    #define RI(n) scanf("%d",&(n))
    #define RII(n,m) scanf("%d%d",&n,&m)
    #define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
    #define RS(s) scanf("%s",s);
    #define ll long long
    #define pb push_back
    #define REP(i,N)  for(int i=0;i<(N);i++)
    #define CLR(A,v)  memset(A,v,sizeof A)
    //////////////////////////////////
    #define inf 0x3f3f3f3f
    const int N=200;
    
    char mp[N][N];
    char table[]={'a','e','i','o','u'};
    
    int main()
    {
        int n,a,b,ok=0;
        RI(n);
    
        rep(i,5,n)
        {
            if(n%i==0&&n/i>=5)
            {
                a=i;b=n/i;ok=1;break;
            }
        }
        if(!ok){printf("-1");return 0;}
    
        int now=0;
    
        rep(i,1,a)
        {
            int cnt=now;
            rep(j,1,b)
            {
                mp[i][j]=table[ cnt%5 ];cnt++;
            }
            now++;
        }
        rep(i,1,a)rep(j,1,b)cout<<mp[i][j];
    
        return 0;
    }
    View Code

    C. A Tale of Two Lands

    题意:有两个人a,b   对于两个整数x,y 每个人有一个技能

    a:   将|x| |y|之间的线段划分为其领土  包括端点

    b:将|x-y| |x+y|之间的线段划分为其领土  

    给出n个数   求里面有多少对xy(无序) 使得b的领土完全包含a的领土

    题目看了半天  看懂了还是挺简单的 

    显然这题正负值是没用的    所以预处理全部取正

    右点|x+y| 肯定是满足的     y-x<=x  所以要  y<=2*x

    二分搜索即可

    #include<bits/stdc++.h>
    using namespace std;
    //input by bxd
    #define rep(i,a,b) for(int i=(a);i<=(b);i++)
    #define repp(i,a,b) for(int i=(a);i>=(b);--i)
    #define RI(n) scanf("%d",&(n))
    #define RII(n,m) scanf("%d%d",&n,&m)
    #define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
    #define RS(s) scanf("%s",s);
    #define ll long long
    #define pb push_back
    #define REP(i,N)  for(int i=0;i<(N);i++)
    #define CLR(A,v)  memset(A,v,sizeof A)
    //////////////////////////////////
    #define inf 0x3f3f3f3f
    const int N=2e5+5;
    int a[N];
    int main()
    {
        int n;RI(n);
        rep(i,1,n)
        {
            int x;RI(x);
            a[i]=(x>0?x:-x) ;
        }
        sort(a+1,a+1+n);
        ll sum=0;
    
        rep(i,1,n)
        {
            int pos=upper_bound(a+1,a+1+n,2*a[i])-a;
            pos--;
            if(pos>i)sum+=(ll)pos-i;
        }
        cout<<sum;
    
        return 0;
    }
    View Code

    D. Cute Sequences

     题意:给出a,b,m

    构造出一个序列  a[i]-s[i-1]<=m ( s[i]为前缀和 )   且头为a 尾为b 

    如果没有则输出-1  

    E. The LCMs Must be Large

    有一个人去购物   一共有n个商店 每个商店有一个数值ai

    给出m天

    每天  k个数字表示 买下了这些数字编号的商店的 数字(货物)

    他没有买的则被他竞争对手买去

    只有他买下的所有数字的最小公倍数大于他竞争对手买下的数字的最小公倍数  他才认为他赢了

    问:有没有n个ai 使得他每天都赢?  (不需要输出序列)

    如果两天的数字没有交集 显然就冲突了  否则就是存在的

    #include<bits/stdc++.h>
    using namespace std;
    //input by bxd
    #define rep(i,a,b) for(int i=(a);i<=(b);i++)
    #define repp(i,a,b) for(int i=(a);i>=(b);--i)
    #define RI(n) scanf("%d",&(n))
    #define RII(n,m) scanf("%d%d",&n,&m)
    #define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
    #define RS(s) scanf("%s",s);
    #define ll long long
    #define pb push_back
    #define REP(i,N)  for(int i=0;i<(N);i++)
    #define CLR(A,v)  memset(A,v,sizeof A)
    //////////////////////////////////
    #define inf 0x3f3f3f3f
    const int N=2e5+5;
    int a[55][10005];
    int n, m;
    
    int main() {
        RII(m,n);
        for(register int i = 1; i <= m; i++) {
            int k; RI(k);
            for(register int j = 1; j <= k; j++) {
                int t; RI(t);
                a[i][t] = 1;
            }
        }
        for(register int i = 1; i <= m; i++) {
            for(register int j = i + 1; j <= m; j++) {
                bool ok = 1;
                for(register int k = 1; k <= n; k++) {
                    if(a[i][k] && a[j][k]) {
                        ok = 0;
                        break;
                    }
                }
                if(ok) {
                    cout << "impossible" << endl;
                    return 0;
                }
            }
        }
        cout << "possible" << endl;
        return 0;
    }
    View Code
  • 相关阅读:
    五.jQuery源码解析之jQuery.extend(),jQuery.fn.extend()
    根据插件Swipe,结合jQuery封装成的新的jQuery插件
    四.jQuery源码解析之jQuery.fn.init()的参数解析
    三.jQuery源码解析之jQuery的框架图
    二.jQuery源码解析之构建jQuery之构建函数jQuery的7种用法
    一.jQuery源码解析之总体架构
    javascript如何判断手机端的浏览器是否支持触碰功能
    javascript如何判断是手机还是电脑访问本网页
    javascript精髓篇之原型链维护和继承.
    VS2012破解_序列号
  • 原文地址:https://www.cnblogs.com/bxd123/p/10906543.html
Copyright © 2011-2022 走看看