Ericnth的小站

  • 你可能还想了解...
  • 首页
  • 编程学习笔记
  • 系统与软件
  • 摄影
  • 随笔
  • 论坛
  • 公告

备战NOIP2020——历年普及组第一题详解

  • Zhang, Xuheng
  • 2020-08-02
  • 0

为什么我只写普及组呢?

ANS:

按照我们现在的水平,报名参加提高组拿不到奖。 ——许洁


正文开始:

今天只讲 金币 和 珠心算测验这两道题。

这两道题在PJZT1中属于难题。其实还是简单

一. 金币。

https://www.luogu.com.cn/problem/P2669

看上去很难,其实很简单。

控制好循环就可以了。

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int K,N,coin=0;
    cin>>K;             
    for(N=1;K-N>=0;K-=(N++))    
        coin+=N*N;               
    cout<<coin+K*N;
    return 0;
}

再给一种好理解一点的方法。

#include <bits/stdc++.h>
using namespace std;
int n;
long long ans;
int main()
{
	cin>>n;
	int h=0;
	for(int i=1;;i++) {
			ans+=i*i;
			h+=i;
			if(h>n){
				ans-=(h-n)*i;
				h=n;
			}
		if(h==n) break;
	}
	cout<<ans<<endl;
	return 0;
} 

二:珠心算测验

https://www.luogu.com.cn/problem/P2141

不多说。就是枚举

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,c,d,sum=0;
    int a[n],b[n];
    cin>>n;
    for (int i=1;i<=n;i++)
    {
        cin>>a[i]; 
        b[i]=a[i];
    }
    for(int i=1;i<=n-1;i++)
    {
        c=a[i];
        for(int j=i+1;j<=n;j++)
        {
            d=a[j];  
            for(int k=1;k<=n;k++)
            {
                if( b[k] == c+d) 
                {
                    sum++; 
                    b[k] = 0;
                }
            } 
        }
    }
    cout<<sum; 
    return 0; 
}

总结:

历年PJZ的T1都是很简单的,做对就有100分,(基本上就有二等奖)。

所以一定要仔细,不能出错。

你可能还想了解...

  • A Bayesian Analysis of High School Acceptance Rates in Shanghai
  • HYRing项目代码解读
  • 算法讲解之贪心算法(转)
  • 算法讲解之回溯法(转)
  • C/C++ IDE推荐
© 2023 Ericnth的小站
Theme by Wing
沪ICP备2020025694号 沪公网安备31011202012861号
  • {{ item.name }}
  • {{ item.name }}