提高组回来之后,像往年一样,做了一下普及组的题
先吐槽一下
这题一眼看上去以为可以用不同种类的铅笔,没想到只能用一种种类,我240B搞定
#include
int main()
{
freopen("pencil.in","r",stdin);freopen("pencil.out","w",stdout);
int n,x,y,i=3,ans=2147483647;scanf("%d",&n);
while(i--) scanf("%d%d",&x,&y),ans=ans<(n+x-1)/x*y?ans:(n+x-1)/x*y;
printf("%d",ans);
}
很符合NOIP普及组的特性,第一题一眼题
也很符合普及组特性,一眼题
只是这题需要注意枚举时枚举月和日比枚举年方便
对于唯一的2月29日经过计算发现9220年是闰年,所以不需要特殊判断
注意细节
#include
#define fo(i,a,b) for(int i=a;i<=b;i++)
int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31},s,t,y1,m1,d1,y2,m2,d2,ans=0,y;
int f(int x)
{
int j=0,k=1;
if(x<10) k=10;
for(;x;x/=10) j=j*10+(x%10);
return j*k;
}
int main()
{
freopen("date.in","r",stdin);freopen("date.out","w",stdout);
scanf("%d\n%d",&s,&t);
fo(i,1,12)
fo(j,1,a[i])
{
y=f(j)*100+f(i);
if(y*10000+i*100+j>=s&&y*10000+i*100+j<=t&&f(y)==i*100+j) ans++;
}
printf("%d",ans);
}
发现了一点异样,因为NOIP普及组第三题从来没有过这么简单
游客数没多大,所以可以全部船一个接一个存到一个数组里,对于每艘船只用记录开始和结束的游客在这个数组里的哪里
但是,第一次提交50分!!!啊???
检查后发现,是细节打错了
#include
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define N 401000
int bz[N],n,t[N],s[N],e[N],a[N],tot=0;
int main()
{
freopen("port.in","r",stdin);freopen("port.out","w",stdout);
scanf("%d",&n);
int j=0,ans=0;
fo(i,1,n)
{
int l;scanf("%d%d",&t[i],&l);
s[i]=tot+1;
fo(k,1,l) {scanf("%d",&a[++tot]);if(bz[a[tot]]==0) ans++;bz[a[tot]]++;}
e[i]=tot;
while(t[j+1]<=t[i]-86400) fo(k,s[++j],e[j]) {bz[a[k]]--;if(bz[a[k]]==0) ans--;}
printf("%d\n",ans);
}
}
于是这题的难度开始爆炸
具体题解看我的另一篇博客NOIP2016 普及组第四题 魔法阵magic 题解
一开始我也只得了85分
这次的题目难度我感觉出了点问题,第四题的难度偏高,第三题难度偏低,但没什么好说的