IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Educational Codeforces Round 114 (Rated for Div. 2) A/B/C/... -> 正文阅读

[C++知识库]Educational Codeforces Round 114 (Rated for Div. 2) A/B/C/...

题单

Dashboard - Educational Codeforces Round 114 (Rated for Div. 2) - Codeforces


A

题意:

给一个数n,打印n个2n长度的字符串,' ( ' 的数目时刻比?' ) ' 的数目多或相等。

思路:

依次交换下标对应符号。

swap(n,n+1);

swap(n-1,n);

swap(n-2,n-1);

swap(n-3,n-2);

...

swap(1,2);

题解:

#include <bits/stdc++.h>
#define bbn 200005
#define maxint 2147483647
#define maxLLint 9223372036854775807
#define mod 1000000007 //1e9+7
const double eps=1e-7;
typedef  long long int  LL;
using namespace std;
int t,n;
void print(char c[])
{
    for(int i=1; i<=2*n; i++)
    {
        cout<<c[i];
    }
    cout<<endl;
}
int main()
{
    cin>>t;
    while(t--)
    {
        cin>>n;
        char c[101]= {};
        for(int i=1; i<=n; i++)
        {
            c[i]='(';
        }
        for(int i=n+1; i<=2*n; i++)
        {
            c[i]=')';
        }
        for(int i=1; i<=n; i++)
        {
            print(c);
            swap(c[n-i+1],c[n-i+2]);
        }
    }
}

B

题意:

判断a个‘a’,b个‘b’,c个‘c’能否组成正好有m个相同连续序列(a[i]=a[i+1]就能算一个)。

思路:

求边界范围即可。

于是画图推公式。

最大数目:

max_num=a-1+b-1+c-1

最小数目:

min_num=max-1-mid-min

题解:

#include <bits/stdc++.h>
#define bbn 200005
#define maxint 2147483647
#define maxLLint 9223372036854775807
#define mod 1000000007 //1e9+7
const double eps=1e-7;
typedef  long long int  LL;
using namespace std;
int t,n,a[4],m;
int main()
{
    cin>>t;
    while(t--)
    {
        cin>>a[1]>>a[2]>>a[3]>>m;
        sort(a+1,a+4);
        int maxn=a[3]-1+a[2]-1+a[1]-1;
        int minn=a[3]-1-a[2]-a[1];
        if(m<minn||maxn<m)
        {
            cout<<"NO"<<endl;
        }
        else
        {
            cout<<"YES"<<endl;
        }

    }
}

C

题意:

给出n个勇者及勇者的力量数值。

给出m条恶龙及恶龙的防御力,攻击力。

每条恶龙都是一个独立事件。一个硬币可以提高一个勇者一点数值的力量。讨伐恶龙时,派出一个力量大于等于恶龙防御的勇者,剩余的勇者们力量和大于等于恶龙攻击力。让花费的硬币最少。

思路:

先从小到大排序勇者的力量。

STL二分 找第一个大于等于恶龙防御力的勇者,考虑越界情况并计算花费。

题解:

#include <bits/stdc++.h>
#define bbn 200005
#define maxint 2147483647
#define maxLLint 9223372036854775807
#define mod 1000000007 //1e9+7
const double eps=1e-7;
typedef  long long int  LL;
using namespace std;
LL n,m,total;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
 
    cin>>n;
    vector<LL> h(n);
    for(LL i=0; i<n; i++)
    {
        cin>>h[i];
        total += h[i];
    }
    sort(h.begin(), h.end());
 
    cin>>m;
    while(m--)
    {
        LL d,p,minn=maxLLint;
        cin>>d>>p;
        LL pos=lower_bound(h.begin(), h.end(), d)-h.begin();
        if(pos>0)
        {
            minn=min(minn,d-h[pos-1]+max(p-total+h[pos-1],(LL)0));
        }
        if(pos<n)
        {
            minn=min(minn,max(p-total+h[pos],(LL)0));
        }
        cout<<minn<<"\n";
    }
    return 0;
}

总结:

这场特殊原因没打...


  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:16:21  更:2021-09-23 11:18:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:17:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码