当前位置: 首页 > news >正文

[CF]Codeforces Round #551 (Div. 2)

solved 4

 

A

题意:签到

#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=1;i<=n;i++)
#define ll long long 
#define pii pair<int,int<
#define mp make_pair
#define pb push_back
#define st first
#define nd second

int main(){
    int n,t;
    cin>>n>>t;
    int ans=1e6,ans2=0;
    rep(i,n){
        int s,d;
        cin>>s>>d;
        while(s<t){
            s+=d;
        }
        if(s-t<ans){
            ans=s-t;
            ans2=i;
        }
    }
    cout<<ans2<<endl;
}
View Code

00:09(1A)

 

B

题意:给出三视图,求任意一个符合的几何体

考虑俯视图,一个点如果是0则这里一定没有块,如果是1就让高度为主视图中该列高度和左视图中该行高度的较小值,证明显然。

#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=1;i<=n;i++)
#define ll long long 
#define pii pair<int,int<
#define mp make_pair
#define pb push_back
#define st first
#define nd second

const int N=1e2+7;

int a[N],b[N],ans[N][N];

int main(){
    int n,m,h;
    cin>>n>>m>>h;
    rep(i,m)cin>>a[i];
    rep(i,n)cin>>b[i];
    rep(i,n){
        rep(j,m){
            cin>>ans[i][j];
            if(ans[i][j]!=0)ans[i][j]=min(a[j],b[i]);
            cout<<ans[i][j]<<" ";
        }
        cout<<endl;
    }    
}
View Code

00:18(1A)

 

C

题意:一个含?的括号序列,?可以赋值为(或),求一种赋值方法使这个序列合法,且这个序列的每个真前缀都不合法。

要让真前缀都不合法,应该把左括号尽量放到前边,整个序列一定有l/2个左括号,记录下原本的左括号数量,然后从左到右扫一遍,还有剩余左括号就赋值为左括号,否则赋值为右括号。

(开始想麻烦了。。自闭了好久)

#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=1;i<=n;i++)
#define ll long long 
#define pii pair<int,int>
#define mp make_pair
#define pb push_back
#define st first
#define nd second

string ans;

const int N=3e5+7;

int main(){
    int l;
    cin>>l;
    string s;
    cin>>s;
    int now=0;
    int sum=0;

    for(int i=0;i<l;i++)
        if(s[i]=='(')sum++;

    if(l&1){
        cout<<":(";
        return 0;
    }
    for(int i=0;i<l;i++){
        if(s[i]=='('){
            ans+='(';
            now++;
        }
        if(s[i]==')'){
            ans+=')';
            now--;
            if(i!=s.size()-1&&now<=0){
                cout<<":(";
                return 0;
            }
        }
        if(s[i]=='?'){
            if(sum<l/2){
                ans+='(';
                sum++;
                now++;
            }
            else {
                ans+=')';
                now--;
                if(i!=l-1&&now<=0){
                    cout<<":(";
                    return 0;
                }
            }
    }
    }
    if(now!=0)cout<<":(";
    else cout<<ans;
}
View Code

01:20(5A)

 

D

题意:给出一棵有根树,有k个叶子节点,每个叶子节点可以赋值为1-k中的一个整数值,且不能重复。其他节点有一个属性,可以是Max或Min,意为这个节点的值是他所有儿子值的最大值或最小值。求根节点的最大值。

简单树形DP,sz[x]为k减去这个节点能达到的最大值再加一,每个叶子节点的sz为1,对于min节点,他的sz为所有儿子的sz和,对于max节点,他的sz为所有儿子sz的最小值。

#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=1;i<=n;i++)
#define ll long long 
#define pii pair<int,int>
#define mp make_pair
#define pb push_back
#define st first
#define nd second

string ans;

const int N=3e5+7;

int f[N],a[N],sz[N];

vector<int> e[N];

int n,k;

void dfs(int x){
    if(e[x].size()==0){
        sz[x]=1;
        k++;
        return ;
    }
    for(int i=0;i<e[x].size();i++){
        if(f[x]==e[x][i])continue;
        dfs(e[x][i]);
        if(a[x]==0){
            sz[x]+=sz[e[x][i]];
        }
        else {
            if(sz[x]==0||sz[e[x][i]]<sz[x])sz[x]=sz[e[x][i]];
        }
    }
}

int main(){
    cin>>n;
    rep(i,n)cin>>a[i];
    rep(i,n-1){
        int x;
        cin>>x;
        f[i+1]=x;
        e[x].pb(i+1);
    }
    dfs(1);
    cout<<k-sz[1]+1;
}
View Code

01:37(1A)

转载于:https://www.cnblogs.com/xutianshu/p/10713929.html

相关文章:

  • Docker最全教程之Python爬网实战(二十一)
  • 性能测试工具Locust的介绍和使用
  • padding属性
  • 渗透测试学习 一、网站搭建
  • GitHub使用指南
  • Android自定义Notification不显示的问题
  • k8s之调度约束
  • vue mock自己总结
  • Linux下EC20实现ppp拨号(转)
  • Python-序列化模块-json-62
  • 虚拟机上 安装 CentoOS 7.5 1804 过程记录
  • npm ERR! Unexpected end of JSON input while parsing near
  • python socket文件传输实现
  • BZOJ3711 Druzyny 最值分治、线段树
  • jmeter5.1企业级应用功能详解
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • gcc介绍及安装
  • Linux Process Manage
  • Node + FFmpeg 实现Canvas动画导出视频
  • springboot_database项目介绍
  • Vue学习第二天
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 给Prometheus造假数据的方法
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 利用jquery编写加法运算验证码
  • 排序算法学习笔记
  • 普通函数和构造函数的区别
  • 数据可视化之 Sankey 桑基图的实现
  • 微信支付JSAPI,实测!终极方案
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (ZT)出版业改革:该死的死,该生的生
  • (二)PySpark3:SparkSQL编程
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)JAVA中的堆栈
  • .net core 控制台应用程序读取配置文件app.config
  • .Net Web项目创建比较不错的参考文章
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • ??javascript里的变量问题
  • @Service注解让spring找到你的Service bean
  • [《百万宝贝》观后]To be or not to be?
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [PHP] 代码重用与函数
  • [python] os.path说明
  • [Redis]基础入门
  • [Unity]出android包出错:java.nio.file.accessdeniedexception
  • [Vulnhub]靶场 Web Machine(N7)