普及组考试已落下大幕,但我们那扑通扑通等待成绩的心仍然无法平静,先来给四道题做一个总结:

一、
买铅笔

自评难度:1星

其实这道题没有什么难度,生命之题,满分必拿,100分,保底啦~\(≧▽≦)/~

二、回文日期

自评难度:2星

我枚举两个年份之间的年份,再判断齐回文是否合法,再判断起点年和终点年的日期是否在范围之内

三、海港

自评难度:4星

这道题首先使用的队列存储船,结果内存超限╮(╯▽╰)╭,但愿竞赛数据很温柔~~

正规数据欺我老无力,忍能对面能坑分,公然坑分入竹去,唇焦舌燥呼不得,归来倚仗自叹息。

俄顷风定云墨色,秋天漠漠向昏黑,骗分多年早无用,竞赛恶坑踏里裂

安得分数超级高,大庇天下考生俱欢颜,风雨不动安如山。呜呼——何时眼前突兀见此分,吾独骗分不成死亦足!

————改自杜甫《茅屋为秋风所破歌》

后来则变成了用队列存储每个人,很好,分数提高,变成时间超限了~~

最后,我舍去循环,在每行数据输入时,就用 if 语句判断国家数,终于,在山寨数据下AC了

代码如下:

#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
struct ill{
int con,t;
}now,per;
queue<ill>a;
int v[100005];
int n,k,s;
void work()
{
now=a.front();
while(now.t<=per.t-86400)
{
a.pop();
v[now.con]--;
if(!v[now.con])s--;
now=a.front();
}
printf("%d\n",s);
}
void scan()
{
int i,nn,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d",&per.t,&nn);
for(j=1;j<=nn;j++)
{
scanf("%d",&per.con);
a.push(per);
v[per.con]++;
k=max(k,per.con);
if(v[per.con]==1)
s++;
}
work();
}
}
int main()
{
scan();
}

╮(╯▽╰)╭,不容易呀

四、魔法阵

自评难度:5星

作为正规考试的最后一题,总是将所谓的此题的致命弱点暴露在外,一打开,里面则是一个血量巨高,双抗爆表,还带红蓝BUFF,没个满级神器打都打不动的BOSS,诶,没办法,跪了/(ㄒoㄒ)/~~

不过,即使无法就地斩杀,也要撕他几块肉下来,抱着这样的决心,我写出了暴力枚举程序,渴望能骗点分~~~

后来,看了大牛的代码,加上老师的讲解,软磨硬泡,终于解决了这个BOSS

其思想也在枚举,但过程大大加速:

我们可以将四个法球的公式,如下展现:

当 i 为正整数时,这几个点就可以满足所有条件

我们先将魔法值为 i 的法球,加入h[ i ]中,数组 h 表示魔法值为 i 的法球有多少个

这下子,只要枚举 i,在枚举 a 和 d 的位置,就可以确定 b 和 c 的位置

最后在再判断h[ a ],h[ b ],h[ c ],h[ d ]中有几个法球,相应处理就行了

代码如下:

#include<cstdio>
int a[15005],b[15005],c[15005],d[15005];
int h[45005],w[15005];
int n,m,x,y;
int main()
{
int i,j;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d",&h[i]);
w[h[i]]++;
}
for(i=1;i<=n/9;i++)
{
x=9*i+1;y=0;
for(j=x+1;j<=n;j++)
{
y+=w[j-x]*w[j-x+i+i];
d[j]+=y*w[j-i];
c[j-i]+=y*w[j];
}
x=8*i+1;y=0;
for(j=n-9*i-1;j>0;j--)
{
y+=w[j+x]*w[j+x+i];
a[j]+=y*w[j+i+i];
b[j+i+i]+=y*w[j];
}
}
for(i=1;i<=m;i++)
printf("%d %d %d %d\n",a[h[i]],b[h[i]],c[h[i]],d[h[i]]);
}

有些细节,自己考究吧~~毕竟自己研究出来的结果才是最好的

普及组虽然考完了,成绩并不好看,但我们并不会放弃,加油↖(^ω^)↗,向明年的提高组进军!!!

NOIP【2016普及组】 考后有感(买铅笔,回文日期,海港,魔法阵)的更多相关文章

  1. noip普及组考纲+样题合集——初级篇(OIer必看)

    很明显我是想发提高组合集的.普及组考纲……用发么. 当然如果你想看的话也可以,就一点点: 递归.排序…… 很明显上面那都不是重点.普及组只要掌握搜索.二分.单调队列.数学.随机化等等,一等奖没问题的, ...

  2. NOIP 普及组 2016 回文日期

    传送门 https://www.cnblogs.com/violet-acmer/p/9859003.html 题解: 思路1: 相关变量解释: year1,month1,day1 : date1对应 ...

  3. NOIP 2018 普及组 解题报告

    目录 标题统计 题目链接 思路 代码 龙虎斗 题目链接: 思路 代码 摆渡车 题目链接: 思路 对称二叉树 题目链接 思路: 先来解释一下为毛现在才来发解题报告: 其实博主是参加过NOIP 2018普 ...

  4. 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题

    洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...

  5. 「CSP」第一届提高组考后总结

    「CSP」第一届提高组考后总结 问题分析+反思 成绩 心态 考前心态 考时心态 考后心态 方法 心灵鸡汤... 在学习了三年之后,我们信竞迎来了初中最后一次大考,也是第一次 CSPCSPCSP 考试. ...

  6. NOIP 2016 回文日期

    洛谷P2010 https://www.luogu.org/problemnew/show/P2010 JDOJ 3313 https://neooj.com:8082/oldoj/problem.p ...

  7. 2016NOIP普及组T2回文日期

    回文日期 分类:枚举,函数 [题目描述] 日常生活中,通过年.月.日这三个要素可以表示出一个唯一确定的日期. 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月份,最后2位代表日期 ...

  8. [洛谷] P2010 [NOIP2016 普及组] 回文日期

    点击查看代码 #include<bits/stdc++.h> using namespace std; int data1, data2, ans = 0, sum; int d[13] ...

  9. NOIP2015&2016普及组解题报告

    NOIP2015普及组题目下载 NOIP2016普及组题目下载 NOIP2015普及组题目: NOIP2018RP++ NOIP2016普及组题目 NOIP2018RP++ T1 金币\((coin. ...

随机推荐

  1. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  2. Java 从入门到进阶之路(十九)

    在之前的文章我们介绍了一下 Java 中的Object,本章我们来看一下 Java 中的包装类. 在 Java 中有八个基本类型:byte,short,int,long,float,double,ch ...

  3. Ceph 之RGW Pub-Sub Module

    Overview Pub-Sub module 顾名思义是一个发布订阅相关的模块.Pub-Sub module 为对象存储的变更事件提供一种发布-订阅机制.而发布-订阅架构本身应用非常广泛,如公有云G ...

  4. Tangram: Optimized Coarse-Grained Dataflow for Scalable NN Accelerators 阅读笔记

    目录 Tangram: Optimized Coarse-Grained Dataflow for Scalable NN Accelerators 1.Abstract 2.Introduction ...

  5. 曹工说Spring Boot源码(7)-- Spring解析xml文件,到底从中得到了什么(上)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  6. web(www)服务器搭建Redhat5.4

    WWW服务概念及服务原理 目前,在Internet上最热门的服务之一就是WWW (World Wide Web)菔务,til^^Web服务.通过WWW触务,岢在Internet 或企业内部网络中传播. ...

  7. 1035 插入与归并 (25 分)C语言

    根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如此迭代直到全部元素有序. 归并排序进行如下迭 ...

  8. Go网络文件传输

    流程分析 借助TCP完成文件的传输,基本思路如下: 发送方(客户端)向服务端发送文件名,服务端保存该文件名. 接收方(服务端)向客户端返回一个消息ok,确认文件名保存成功. 发送方(客户端)收到消息后 ...

  9. 学海无涯-php

  10. 01_console 你真的了解吗,不曾了解过得console~

    对于 console 你只知道 console.log 吗? 那你就 out 啦!!! // 1. 显示信息 console.log('hello'); console.info('信息'); con ...