本文作者:Zhang, Xuheng
本文分类:编程学习笔记 浏览:1676
阅读时间:835字, 约1-1.5分钟
为什么我只写普及组呢?
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分,(基本上就有二等奖)。
所以一定要仔细,不能出错。
关于作者Zhang, Xuheng
- 还没有填写个人简介
- Email: hy23682@126.com
- 注册于: 2020-04-07 05:11:14
简单,不如分析一下T4(
@Rolling_Code (((这个交给你
@Zhang, Xuheng 啊这
@Rolling_Code 我负责t2t3
2020年8月2日10:25 审核通过