Tasks - Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)\

D - At Most 3 (Contestant ver.)

题意: 每次给定一个n,求出一个序列,保证每次可以从序列中选取最多三个数,来构成1-n中的所有数字,序列最大长度300。

题解; 可以直接求一个构成1-1e6的序列,开始时思考的二进制,但感觉很难控制在300以内,所以可以分成三份,每份100个,其实100个的话会有重复的。

三份分别是 *1 *100 *10000,至于为什么可以构成1e6内所有数字,首先*1可以构成1-100,*100的话,每一个数字都变成__00,后面两位在*1求出来了,*10000同理。

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
signed main(){
ll n;cin>>n;
cout<<"300"<<endl;
for(ll i=1;i<=100;i++) cout<<i<<" "<<i*100<<" "<<i*10000<<endl;
}

E - Takahashi and Animals

题意: 每次可以选择一个点,这个点可以把自身和下一点标记,第n个点标记自身和第一个点,每个点标记有权值,问最小权值。

题解: 每个点选与不选,经典dp,问题在于这是一个环形结构,所以需要对第一个进行处理,分成两种情况,从而变成链状结构。

  1. 第一个点标记,这样最后一个点就不被约束,可以标记,也可以不标记。
  2. 第一个点不标记,那么最后一个点一定要标记。

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
const int N=3e5+50;
const ll mod=998244353;
const ll inf=1e18;
ll a[N],dp[N][2];
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
ll ans=inf;
ll n;cin>>n;
for(ll i=1;i<=n;i++) cin>>a[i];
dp[1][1]=a[1];//第一个点标记
dp[1][0]=inf;
for(ll i=2;i<=n;i++){
dp[i][0]=dp[i-1][1];
dp[i][1]=min(dp[i-1][0],dp[i-1][1])+a[i];
}
ans=min(ans,min(dp[n][0],dp[n][1]));
memset(dp,0,sizeof(dp));
dp[1][1]=inf; // 第一个点不标记
dp[1][0]=0;
for(ll i=2;i<=n;i++){
dp[i][0]=dp[i-1][1];
dp[i][1]=min(dp[i-1][0],dp[i-1][1])+a[i];
}
ans=min(ans,dp[n][1]);
cout<<ans;
}

atcoder beginner contest 251(D-E)的更多相关文章

  1. AtCoder Beginner Contest 100 2018/06/16

    A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...

  2. AtCoder Beginner Contest 052

    没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...

  3. AtCoder Beginner Contest 053 ABCD题

    A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...

  4. AtCoder Beginner Contest 136

    AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...

  5. AtCoder Beginner Contest 137 F

    AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...

  6. AtCoder Beginner Contest 076

    A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...

  7. AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】

    AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...

  8. AtCoder Beginner Contest 064 D - Insertion

    AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...

  9. AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle【暴力】

    AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...

随机推荐

  1. JDBC、ORM、JPA、Spring Data JPA,傻傻分不清楚?一文带你厘清个中曲直,给你个选择SpringDataJPA的理由!

    序言 Spring Data JPA作为Spring Data中对于关系型数据库支持的一种框架技术,属于ORM的一种,通过得当的使用,可以大大简化开发过程中对于数据操作的复杂度. 本文档隶属于< ...

  2. RabbitMD大揭秘

    RabbitMD大揭秘 欢迎关注H寻梦人公众号 通过SpringBoot整合RabbitMQ的案例来说明,RabbitMQ相关的各个属性以及使用方式:并通过相关源码深刻理解. Queue(消息队列) ...

  3. 这么多房子,哪一间是我的小窝?python采集数据并做数据可视化~

    前言 嗨喽,大家好呀!这里是小熊猫 环境使用: (https://jq.qq.com/?_wv=1027&k=ONMKhFSZ) Python 3.8 Pycharm 模块使用: (https ...

  4. 两分钟解决Python读取matlab的.mat数据

    Matlab是学术界非常受欢迎的科学计算平台,matlab提供强大的数据计算以及仿真功能.在Matlab中数据集通常保存为.mat格式.那么如果我们想要在Python中加载.mat数据应该怎么办呢?所 ...

  5. gslb(global server load balance)技术的一点理解

    gslb(global server load balance)技术的一点理解 前言 对于比较大的互联网公司来说,用户可能遍及海内外,此时,为了提升用户体验,公司一般会在离用户较近的地方建立机房,来服 ...

  6. 基于SqlSugar的开发框架循序渐进介绍(11)-- 使用TypeScript和Vue3的Setup语法糖编写页面和组件的总结

    随着Vue3和TypeScript的大浪潮不断袭来,越来越多的Vue项目采用了TypeScript的语法来编写代码,而Vue3的JS中的Setup语法糖也越来越广泛的使用,给我们这些以前用弱类型的JS ...

  7. Entry键值对对象和Map集合遍历键值对方式

    我们已经知道,Map中存放的是两种对象,一种称为key(键),一种称为value(值),它们在在IMap 中是一一对应关系, 这一对对象又称做Map 中的一个Entry(项).Entry将键值对的对应 ...

  8. Identity Server 4资源拥有者密码认证控制访问API

    基于上一篇文章中的代码进行继续延伸,只需要小小的改动即可,不明白的地方可以先看看本人上一篇文章及源码: Identity Server 4客户端认证控制访问API 一.QuickStartIdenti ...

  9. 【cartographer_ros】七: 主要配置参数说明

    上一节介绍了路标Landmark数据的订阅和发布,各类数据的发布和订阅基本阐述完毕. 本节会介绍cartographer的主要配置参数,研究这些参数的使用和对算法的影响. 目录 1,map_build ...

  10. 万字干货|Java基础面试题(2022版)

    目录 概念常识 Java 语言有哪些特点? JVM.JRE和JDK的关系 什么是字节码? 为什么说 Java 语言是"编译与解释并存"? Oracle JDK 和OpenJDK的区 ...