恍然大悟的题

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 恍然大悟的题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

Problem – C – Codeforces

恍然大悟的题

 恍然大悟的题

#include<stdio.h>

int main()
{
	int t,n,k;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d",&k,&n);
		int a=1;
		for(int i=1;i<=k;i++)
		{
			if(a+i-1+(k-i)<=n) a+=i-1;//k-i:可以再加上的个数
			else a++;
			printf("%d ",a);
		}
		printf("\n");
	}	return 0;
}

为什么得加上k-i:

恍然大悟的题 🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈

 Problem – A – Codeforces

恍然大悟的题

 你品品

恍然大悟的题

#include <bits/stdc++.h>
using namespace std;

int main() {
	cin.tie(0); cout.tie(0);
	ios::sync_with_stdio(false);
	int t;
	cin>>t;
	while(t--) {
		int n;
		cin>>n;
		vector<int> a(n);
		for(int i = 0; i < n; i++) {
			cin>>a[i];
		}
		sort(a.begin(), a.end());
		int pos = 0;
		while(pos < n && a[pos] == 1) {
			pos++;
		}
		if(pos == n) {
			cout<<pos/2+(pos%2?1:0)<<"\n";
		}else {
			cout<<pos/2+(pos%2?1:0)+(n-pos)<<"\n";
		}
	}
	return 0;
}

 🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈

牛牛的星际旅行 (nowcoder.com)

恍然大悟的题

 注意本题的限制条件 重点 而且假如某件衣服是在第x天穿的,那么下一次最早能穿这件衣服的时期为x+N-1 

侧面显示了第一周后穿的衣服如果在最后一周提前穿 至少要经历

(后穿的下标—前穿的下标)周

恍然大悟的题

using namespace std;
int n,r,m = 0;
int a[2510],b[2510];
int main(){
    cin >>n ;
    for(int i =1;i<=n;i++){
        cin>>a[i];
    }

    for(int i =1;i<=n;i++){
        cin >>r;
        b[r]=i;//存的是位置
    }
    
    for(int i =1;i<=n;i++){
        m = max(m,i-b[a[i]]);
    }
    cout<<m+1;//加上本周
    return 0;
}

🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈🏳️‍🌈

 Problem – A – Codeforces恍然大悟的题

 本来以为这个题的做法很高深,其实逐个判断每个数是奇数或偶数即可

 奇数+奇数+奇数=奇数

奇数+偶数+偶数=奇数

#include <bits/stdc++.h>
using namespace std;

int main()
{
    long long int t;
    cin >> t;
    while (t--)
    {
        int n;
        cin >> n;
        int a[n];
        vector<int> o;
        vector<int> e;
        int temp;
        for (int i = 0; i < n; i++)
        {
            cin >> temp;
            if (temp % 2 == 0)
                e.push_back(i + 1);
            else
                o.push_back(i + 1);
        }
        if (o.size() > 2)
        {
            cout << "YES" << endl;
            cout << o[0] << ' ' << o[1] << ' ' << o[2] << endl;
        }
        else if (o.size() > 0 && e.size() > 1)
        {
            cout << "YES" << endl;
            cout << o[0] << ' ' << e[0] << ' ' << e[1] << endl;
        }
        else
            cout << "NO" << endl;
    }
}

P1598 垂直柱状图 – 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

恍然大悟的题

 这道题特别注意细节

#include<iostream>
#include<cstring>
using namespace std;
int ff[26];//定义计数数组
int main()
{
    int i,j,n,maxn=0;
    string a;
    for(i=0;i<4;i++)
    {
        getline(cin,a);
        n=a.size();
        for(j=0;j<n;j++)
        {
        	if(a[j]>='A'&&a[j]<='Z')
			ff[a[j]-'A']++;//统计字符出现次数
		}
    }
    for(i=0;i<26;i++)
	{
		maxn=max(maxn,ff[i]);//最多次数(最高柱状图)
	}
	for(i=maxn;i>0;i--)
	{
    	for(j=0;j<26;j++)
    	{
	    	if(ff[j]>=i)
			printf("* ");
			else 
			printf("  ");//模拟,是可以输出的就输出*,否则跳过
		}
		printf("\n");				
	}//换行
    for(i=0;i<26;i++)
	printf("%c ",i+'A');//输出A~Z

}

必须要有printf(‘ ‘);这一步

这一步不是不输出,是输出一个空格(空格也占一个位置),然后把后面的输出在这个空格后面

否则会变成 

恍然大悟的题

植树造林 (nowcoder.com)

恍然大悟的题 

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    if(n%2==0)
        printf("2");
    else
        printf("1");
    return 0;
}

 分析这个  最远距离最小的含义

恍然大悟的题

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/131412.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!