码迷,mamicode.com
首页 > 其他好文 > 详细

codeforces 555

时间:2015-07-27 13:21:29      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

最近爱做codeforces。。。。。像比赛题而且有样例,,,嘻嘻

A:因为题意卡了我两回(开始以为必须是10才消掉。。。后来又以为只算1的个数),,其实没啥说的

#include <iostream>
#include<bits/stdc++.h>

using namespace std;

int main()
{

    int m;
    scanf("%d",&m);
    char a[200001];
    scanf("%s",a);
    int sum=0;
    int sum2=0;
    int i;
    for(i=0;i<strlen(a);i++)
    {
        if(a[i]==‘1‘) sum++;
        else sum2++;
    }
    printf("%d\n",abs(sum-sum2));

    return 0;
}

B:其实应该是有规律的(比如m是偶数奇数位和偶数位一样啊神马的。。。。不过直接模拟了。。。)

#include <iostream>
#include<bits/stdc++.h>

using namespace std;

int main()
{
    int m;
    scanf("%d",&m);
    int a[1001];
    int i;
    for(i=0;i<m;i++)
    {
        scanf("%d",&a[i]);
    }
    int n=m-a[0];
    for(i=1;i<m;i++)
    {
        if(i%2==1)
        {
            if(a[i]-n!=i&&((m-n+a[i])!=i))
            {
                printf("No\n");
                //printf("%d**\n",i);
                return 0;
            }
        }
        else
        {
            if(a[i]+n!=i&&(n-m+a[i]!=i))
            {
                printf("No\n");
                //printf("%d**\n",i);
                return 0;
            }
        }
    }
    printf("Yes\n");
    return 0;
}
C:只可以留从1开始的链剩下的全拆掉= = ,,,,开始以为只要是连续的都不拆呢,,,,,哎(有点改的乱了,,本来以为要判断有多少连续的链呢)

#include <iostream>
#include<bits/stdc++.h>

using namespace std;

int main()
{
    int geshu,lianshu;
    scanf("%d%d",&geshu,&lianshu);
    int a;
    int w,q;
    int i,j;
    int t=0,bufen=0;
    for(i=0;i<lianshu;i++)
    {
        scanf("%d",&a);
        scanf("%d",&w);
        if(w==1)
        {
            for(j=1;j<a;j++)
            {
                scanf("%d",&q);
                if(q==w+1) w++;
                else
                {
                    bufen++;
                    t++;
                }
            }
        }
        else
        {for(j=1;j<a;j++)
        {
            scanf("%d",&q);
            t++; bufen++;
        }}
    }
    printf("%d\n",bufen+lianshu+t-1);
    return 0;
}

D:好难哦。。。。。。。用的就是贪心了,,,,,,只是这题用到了类和容器,对我来说有点难度(至少要用容器不然查找到了删除太费劲了。。)

其实不太熟,,勉强做的

#include <iostream>
#include<bits/stdc++.h>

using namespace std;

pair<int64_t,int64_t>pa[200000];
set<pair<int64_t, int> >X;
pair<int64_t,pair<int64_t,int> >diff[200000];
int ans[200000];

bool cmp(pair<int64_t,pair<int64_t,int> >p1 , pair<int64_t,pair<int64_t,int> >p2)
{
    return p1.first > p2.first || (p1.first == p2.first && p1.second.first > p2.second.first);
}

int main()
{
    ios_base::sync_with_stdio(false); //这个语句是让cin,cout更快的
    cin.tie(NULL), cout.tie(NULL);    //加快执行效率。。。。
    int n,m; cin >> n >> m;
    for(int i = 0; i < n; i ++)
    {
        int64_t a,b;
        cin >> a >> b;
        pa[i] = make_pair(a,b);  //make_pair 将a,b构造成pair类型赋值pa中
    }
    sort(pa,pa+n);               //直接排序
    for(int i = 0; i < m; i ++){
        int64_t a;
        cin >> a;
        X.insert(make_pair(a,i+1));      //将桥的长度和序号做成pair放入X中
    }
    for(int i = 0; i < n-1; i ++){
        diff[i] = make_pair(pa[i+1].first-pa[i].second ,make_pair(pa[i+1].second - pa[i].first,i));  //两个岛的最大与最小距离,,还有对应的i
    }
    sort(diff,diff+n-1,cmp);
   
    set<pair<int64_t,int> > :: iterator it;  //迭代器,用于遍历(类似指针吧~)
   
    for(int i = 0; i < n-1; i ++)
    {
        int64_t d = diff[i].first;
        int64_t s = diff[i].second.first;  //最大的值
        it = X.lower_bound(make_pair(s+1,0));  //二分查找
        if(it == X.begin())  //走到了尽头
        {
            cout << "No\n";
            return 0;
        }
        it--;
        if(it!=X.end()) 
        {
            if((*it).first < d)   //没走到头但是已经不行了
            {
                cout << "No\n";
                return 0;
            }
        }
        else            //走到了尽头
        {
            cout << "No\n";
            return 0;
        }
        ans[diff[i].second.second] = (*it).second;
        X.erase(it);
    }
    cout << "Yes\n";
    for(int i = 0; i < n-1; i ++)
        cout << ans[i] << ‘ ‘;
}


路漫漫其修远兮。





版权声明:本文为博主原创文章,未经博主允许不得转载。

codeforces 555

标签:

原文地址:http://blog.csdn.net/zhangwenchi/article/details/47079579

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!