KYOCERA Programming Contest 2022(AtCoder Beginner Contest 271)

这篇具有很好参考价值的文章主要介绍了KYOCERA Programming Contest 2022(AtCoder Beginner Contest 271)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

KYOCERA Programming Contest 2022(AtCoder Beginner Contest 271)

A - 484558

思路:进制转换
没啥巧解,就十进制转十六进制

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define pb push_back
#define SZ(v) ((int)v.size())
#define fs first
#define sc second
const int N=2e6+10,M=2e5;
typedef double db;
typedef pair<int,int>pii;
int n,m,k,Q,cnt,t;
vector<int>del;
int l[200010],l1[N],r[200010],r1[N];
int prime[N];
bool st[N];
bool isPrime(int n)
{
	if (n <= 3)//当n不大于3时只有1不是素数
		return n > 1;
	if (n % 6 != 1 && n % 6 != 5)//只有6i+1和6i+5可能是素数
		return false;
	for (int i = 5; i <= sqrt(n); i += 6)
	{
		if (n % i == 0 || n % (i + 2) == 0)
			return false;
	}
	return true;
}
map<int,char>mp;
void solve() {	
	int n;cin>>n;
	int sum=0;
	int x=n/16;
	n%=16;
    for(int i=0;i<16;i++){
        if(i<=9)mp[i]=char(i+'0');
        else {
            mp[i]=(char)(i-10+'A');
        }
    }
	cout<<mp[x]<<mp[n];
}
signed main(){
    //cin>>t;
    t=1;
    while(t--)solve();
}

B - Maintain Multiple Sequences

思路:
直接取出对应位置的值即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define pb push_back
#define SZ(v) ((int)v.size())
#define fs first
#define sc second
const int N=2e5+10,M=2e5;
typedef double db;
typedef pair<int,int>pii;
int n,m,k,Q,cnt,t;
vector<int>del;
int l[200010],l1[N],r[200010],r1[N];
int prime[N];
bool st[N];
bool isPrime(int n)
{
	if (n <= 3)//当n不大于3时只有1不是素数
		return n > 1;
	if (n % 6 != 1 && n % 6 != 5)//只有6i+1和6i+5可能是素数
		return false;
	for (int i = 5; i <= sqrt(n); i += 6)
	{
		if (n % i == 0 || n % (i + 2) == 0)
			return false;
	}
	return true;
}
map<int,char>mp;
void solve() {	
	int n,m;
	cin>>n>>m;
	vector<int>g[N];
	for(int i=1;i<=n;i++){
	    int x;
	    cin>>x;
	    for(int j=1;j<=x;j++){
	        int y;
	        cin>>y;
	        g[i].push_back(y);
	    }
	}
	while(m--){
	    int i,j;
	    cin>>i>>j;
	    j--;
	    cout<<g[i][j]<<endl;
	}
}
signed main(){
    //cin>>t;
    t=1;
    while(t--)solve();
}

C - Manga

思路:二分
二分答案然后看 mid 是不是满足能构成 1到 mid里面的所有数,能就继续二分,输出答案即可

    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    #define rep(i,a,n) for(int i=a;i<=n;i++)
    #define per(i,a,n) for(int i=n;i>=a;i--)
    #define pb push_back
    #define SZ(v) ((int)v.size())
    #define fs first
    #define sc second
    const int N=2e5+10,M=2e5;
    typedef double db;
    typedef pair<int,int>pii;
    int n,m,k,Q,cnt,t;
    vector<int>del;
    int l[200010],l1[N],r[200010],r1[N],b[N];
    int prime[N];
    bool st[N];
    bool isPrime(int n)
    {
    	if (n <= 3)//当n不大于3时只有1不是素数
    		return n > 1;
    	if (n % 6 != 1 && n % 6 != 5)//只有6i+1和6i+5可能是素数
    		return false;
    	for (int i = 5; i <= sqrt(n); i += 6)
    	{
    		if (n % i == 0 || n % (i + 2) == 0)
    			return false;
    	}
    	return true;
    }
    unordered_map<int,int>mp;
    int f[110][10100];
    pii lst[110][10100];
    void dfs(int i,int j){
        if(i==0) return ;
        dfs(i-1,j-lst[i][j].first);
        if(lst[i][j].second==1) cout<<"H";
        else cout<<"T";
    }
    priority_queue<int>q;
    bool check(int mid){
        int x=0,y=0;
        rep(i,1,mid){
            if(!mp[i])x++;
        }
        if(n-(mid-x)>=x*2)return true;
        else return false;
        //1 3 5 7 8 9
    }
    //int n;
    void solve() {	
    	cin>>n;
        vector<int>a(n);
    	for(auto&i:a) {
    	    cin>>i;
    	    mp[i]++;
    	}
    	sort(a.begin(),a.end());
    	int l=0,r=n;
    	while(l<r){
    	    int mid=(l+r+1)>>1;
    	    if(check(mid)){
    	        l=mid;
    	       //cout<<"l== "<<l<<endl;
    	    }
    	    else {
    	       
    	        r=mid-1;
    	        //cout<<"r=== "<<r<<endl;
    	    }
    	}
    	cout<<l;
    }
    signed main(){
        //cin>>t;
        t=1;
        while(t--)solve();
    }

D - Flip and Adjust

思路:动态规划
类似于背包,然后就是判断他前面一个数能不能转换过来能就记录该值以及路径即可,然后dfs反向判断满足条件的路径文章来源地址https://www.toymoban.com/news/detail-697930.html

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define pb push_back
#define SZ(v) ((int)v.size())
#define fs first
#define sc second
const int N=2e5+10,M=2e5;
typedef double db;
typedef pair<int,int>pii;
int n,m,k,Q,cnt,t;
vector<int>del;
int l[200010],l1[N],r[200010],r1[N],a[N],b[N];
int prime[N];
bool st[N];
bool isPrime(int n)
{
	if (n <= 3)//当n不大于3时只有1不是素数
		return n > 1;
	if (n % 6 != 1 && n % 6 != 5)//只有6i+1和6i+5可能是素数
		return false;
	for (int i = 5; i <= sqrt(n); i += 6)
	{
		if (n % i == 0 || n % (i + 2) == 0)
			return false;
	}
	return true;
}
map<int,int>mp;
int f[110][10100];
pii lst[110][10100];
void dfs(int i,int j){
    if(i==0) return ;
    dfs(i-1,j-lst[i][j].first);
    if(lst[i][j].second==1) cout<<"H";
    else cout<<"T";
}
priority_queue<int>q;
void solve() {	
	int n,m;cin>>n>>m;
	for(int i=1;i<=n;i++){
	    cin>>a[i]>>b[i];
	}
	f[0][0]=1;
	for(int i=1;i<=n;i++){
	    for(int j=0;j<=m;j++){  
	        if(j>=a[i]){
	            if(f[i-1][j-a[i]]){f[i][j]=1;lst[i][j]={a[i],1};}
	        }
	        if(j>=b[i]){
	            
	            if(f[i-1][j-b[i]]){f[i][j]=1;lst[i][j]={b[i],2};}
	        }
	    }
	}
	if(f[n][m]){
	    cout<<"Yes\n";
	    
	}
	else {
	    cout<<"No";
	    return ;
	}
	dfs(n,m);
}
signed main(){
    //cin>>t;
    t=1;
    while(t--)solve();
}

到了这里,关于KYOCERA Programming Contest 2022(AtCoder Beginner Contest 271)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • AtCoder Beginner Contest 342

    给定一个字符串,两个字符,其中一个只出现一次,找出它的下标。 看第一个字符出现次数,如果是 (1) 则就是它,否则就是 不是它的字符 。 神奇的代码 一排人。 (m) 个询问,每个询问问两个人,谁在左边。 记录一下每个人的下标,然后对于每个询问比较下标大小即可

    2024年03月09日
    浏览(35)
  • AtCoder Beginner Contest 340

    给定等差数列的 首项 、 末项 、 公差 。 输出这个等差数列。 从 首相 依次累加 公差 到 末项 即可。 神奇的代码 依次进行 (Q) 次操作,分两种。 1 x ,将 x 放到数组 (a) 的末尾。 2 k ,输出数组 (a) 的倒数第 (k) 项。 用 vector 模拟即可,操作 2 可快速寻址访问。 神奇的代

    2024年02月19日
    浏览(6)
  • AtCoder Beginner Contest 304

    依次给定每个人的姓名和年龄,排成一圈。从年龄最小的人依次输出姓名。 找到年龄最小的,依次输出就好了。 神奇的代码 给定一个数字,如果其超过三位数,则仅保留其最高三位,低位数字全部置为0。 读一个 string ,直接赋值即可。 神奇的代码 给定 (n) 个人的坐标,第

    2024年02月07日
    浏览(12)
  • AtCoder Beginner Contest 305

    给定一个数字 (x) ,输出一个数字,它是最接近 (x) 的 (5) 的倍数。 令 (y = x % 5) ,如果 (y leq 2) ,那答案就是 (x - y) ,否则就是 (x + 5 - y) 。 神奇的代码 给定 (ABCDEFG) 的相邻距离,给定两个字母,问它们的距离。 累加距离即可。 神奇的代码 二维平面,有一个矩形

    2024年02月08日
    浏览(24)
  • AtCoder Beginner Contest 339

    给一个网址,问它的后缀是多少。 找到最后的\\\'.\\\'的位置,然后输出后面的字符串即可。 python 可以一行。 神奇的代码 二维网格,上下左右相连,左上原点。初始全部为白色,位于原点,面朝上。 进行 (n) 次操作,每次操作,将当前格子颜色黑白反转,然后 如果原来是白色

    2024年02月19日
    浏览(13)
  • AtCoder Beginner Contest 336

    给定一个数 (n) ,将 long 中的 o 重复 (n) 次后输出。 模拟即可。 神奇的代码 给定一个数 (n) ,问 (n) 的二进制表示下的末尾零的数量。 即找到最小的 (i) 使得 (n (1 i)) 不为零的位置。枚举即可。 或者直接用内置函数 __builtin_ctz 。(count tail zero? 神奇的代码 定义一个数

    2024年01月20日
    浏览(37)
  • AtCoder Beginner Contest 328

    给定 (n) 个数字和一个数 (x) 。 问不大于 (x) 的数的和。 按找要求累计符合条件的数的和即可。 神奇的代码 给定一年的月数和一个月的天数。 问有多少对 ((i,j)) ,表示第 (i) 个月的第 (j) 日, (i,j) 的数位上每个数字都是一样的。 范围只有 (O(100^2)) ,枚举所有的

    2024年02月05日
    浏览(33)
  • AtCoder Beginner Contest 308

    这几天在收拾东西搬家,先附上代码,晚点补上题解 补完了 感觉这次FG都写不太明白 给定八个数,问是否满足以下要求: 不严格升序 每个数在 (100 sim 675) 之间 每个数都是 (25) 的倍数 依次对每个数判断是否符合这三个条件即可。 神奇的代码 高桥吃 (n) 份寿司,寿司分

    2024年02月11日
    浏览(33)
  • AtCoder Beginner Contest 318

    咕咕咕,总力战还没打,凹不过卷狗,躺了.jpg 给定 (n, m, p) ,问有多少个 (i) 满足 (0 m+pi leq n) 减去初始的 (m) ,剩下的就是看 (p) 的倍数个数。 神奇的代码 一个二维空间,有 (n) 个矩形覆盖。 问有多大的空间被覆盖了。重复覆盖算一次。 空间大小只有 (100) ,矩形

    2024年02月10日
    浏览(55)
  • AtCoder Beginner Contest 332

    坐地铁时口糊了6题,回来写时结果爆 long long , 0 没有逆元,卡了好久 线上购物,买了 (n) 种物品,分别给出它们的单价和数量。 若总价少于 (s) 元,则需要支付 (k) 元邮费,否则包邮。 问总价多少。 求个和判断下是否加邮费即可。 神奇的代码 一个容量为 (G) 的玻璃杯

    2024年02月04日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包