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++知识库 -> Codeforces Round #823 (Div. 2)(A~C) -> 正文阅读

[C++知识库]Codeforces Round #823 (Div. 2)(A~C)

A. Planets

卫星射击,简单的模拟题

#include<bits/stdc++.h>
using namespace std;
int a[105];
int main()
{
    int t;cin>>t;
    while(t--){map<int,int>mp;
        int n,c;cin>>n>>c;
        for(int i=0;i<n;i++){cin>>a[i];、mp[a[i]]++;}
        int ans=0;
        for(auto i:mp)
            if(i.second>=c)ans+=c;
            else ans+=i.second;
        cout<<ans<<endl;
    }
    return 0;
}

B. Meeting on the Line

题意:每个人到 x0 的所花时间是 ti +| x0 - xi |,求应该把x0设置在哪里

思路:

二分时间,并且check 时间是否合适。最后得到合适的最短时间,用这个最短时间去找每个人能够移动的最大范围的重叠的地方,那么这个重叠的地方就是答案。同时关于怎么check也是找区间,有过有的区间没有重叠的地方,那么这个时间就是不合适的了。

注意:

记得在输出的时候要输出10位,不然会WA

代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
double x[100005],t[100005],n,ans;
bool check(double mid){
    double r=1e18,l=0;
    for(int i=0;i<n;i++){
        if(mid<t[i])return 0;
        double time=mid-t[i];
        r=min(r,x[i]+time);
        l=max(l,x[i]-time);
    }
    ans=r;
    return r>=l;
}
signed main()
{
    int T;cin>>T;
    while(T--){
        cin>>n;
        for(int i=0;i<n;i++)cin>>x[i];
        for(int i=0;i<n;i++)cin>>t[i];
        double l=0,r=1e18;//模拟时间
        for(int i=1;i<=100;i++){
            double mid=(l+r)/2;
            if(check(mid)){r=mid;}
            else l=mid;
        }
        check(r);
        cout<<fixed<<setprecision(10)<<ans<<endl;
    }
    return 0;
}

C. Minimum Notation

简单模拟

思路:记录最终输出的答案的0~9的个数,之后从小到大输出

1.把每个数的位置记录下来,从0到9枚举 i 的最后一位

2.之后把从i-1的最后一位到?i?的最后一位中间的数记录

2.1 如果是数字是9,9的个数+1

2.2如果是数字是i,i的个数+1

2.3剩下情况,(该数字+1)的个数+1

之后从小到大输出

代码:

#include<bits/stdc++.h>
using namespace std;
char s[200005],ss[200005];
int main()
{
    int T;cin>>T;
    while(T--){
        cin>>s;
        vector<int>v[10];
        int co[10]={0};
        int n=strlen(s);
        for(int i=0;i<n;i++){
            ss[i]=s[i];
            v[s[i]-'0'].push_back(i);
        }
        int l=0;
        for(int i=0;i<=9;i++){
            int r=v[i].size();
            if(r==0)continue;
            if(v[i][r-1]<l)continue;
            for(int q=l;q<=v[i][r-1];q++){
                if(s[q]==(i+'0'))co[i]++;
                else if(s[q]=='9')co[9]++;
                else co[s[q]-'0'+1]++;
            }
            l=v[i][r-1]+1;
        }
        for(int i=0;i<=9;){
            if(co[i]!=0)cout<<i;co[i]--;if(co[i]<=0)i++;
        }
        cout<<endl;
    }
    return 0;
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:22:11  更:2022-10-08 20:23:46 
 
开发: 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年5日历 -2024/5/19 3:16:12-

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