zoukankan      html  css  js  c++  java
  • Codeforces #528.div2

    A-还原字符串

    B-商*余数

    n=a*b,找到最小的a使得b<k;

    C-连接三区域

    对三点横坐标排序,找到最中间的那一点

    把最中间的那一竖条从最低到最高全部涂黑

    然后其他两个点向中间作垂线,把垂线涂黑

    #include <bits/stdc++.h>
    using namespace std;
    pair<int,int>p[3];
    vector<pair<int,int> > ans;
    int main()
    {
        int i;
        int minh=10000,maxh=-1;
        for(i=0;i<3;i++)
        {
            cin>>p[i].first>>p[i].second;
            if(p[i].second>maxh)maxh=p[i].second;
            if(p[i].second<minh)minh=p[i].second;
        }
        sort(p,p+3);
        for(i=minh;i<=maxh;i++)
        {
            ans.push_back({p[1].first,i});
        }
        for(i=p[0].first;i<p[1].first;i++)ans.push_back({i,p[0].second});
        for(i=p[1].first+1;i<=p[2].first;i++)ans.push_back({i,p[2].second});
        printf("%d
    ",ans.size());
        for(i=0;i<ans.size();i++)
        {
            printf("%d %d
    ",ans[i].first,ans[i].second);
        }
        return 0;
    }

    D-树的最小直径

     按着样例试了一下竟然过了

    就是把中间的树枝的值全部赋0

    只给悬挂树枝(含叶子结点)平均赋值

    最小直径等于悬挂树枝的值*2

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn=1e5+10;
    int t[maxn];
    int main()
    {
        int n,s;
        cin>>n>>s;
        for(int i=0;i<n-1;i++)
        {
            int a,b;
            cin>>a>>b;
            t[a]++;
            t[b]++;
        }
        double ans=0;
        for(int i=1;i<=n;i++)
        {
            if(t[i]==1)ans++;
        }
        double res=2*s*1.0/ans;
        printf("%.16f
    ",res);
        return 0;
    }
  • 相关阅读:
    adfs环境安装
    joinquant网站
    test
    对C转换说明符的误解以及关于数组的一些知识
    正确求平方根的整数部分方法
    单链表的交换排序法
    链表的冒泡排序
    240页345题
    C语言中对数组名取地址
    单链表的基础操作练习
  • 原文地址:https://www.cnblogs.com/raincle/p/10335924.html
Copyright © 2011-2022 走看看