T1

大水题,不解释
上考场代码
  1. #include <algorithm>
  2. #include <cstdio>
  3. using namespace std;
  4. int main() {
  5. freopen("pencil.in","r",stdin);
  6. freopen("pencil.out","w",stdout);
  7. int n,Min = 0x7fffffff;
  8. scanf("%d",&n);
  9. ;i <= ;i++) {
  10. int number,money,count;
  11. scanf("%d%d",&number,&money);
  12. count = n/number;
  13. if (n%number) count++; //count为需要买的包数
  14. Min = min(Min,count*money); //取最小的
  15. }
  16. printf("%d",Min);
  17. ;
  18. }

T2

简单的模拟,生成date1到date2的所有日期,判断是否回文
上考场代码
  1. #include <cstdio>
  2. ,,,,,,,,,,,,};
  3. inline bool check(int date) { //判断是否回文
  4. ];
  5. t[] = ;
  6. while (date) {
  7. t[++t[]] = date%;
  8. date /= ;
  9. }
  10. ;i <= ;i++)
  11. -i+]) return false;
  12. return true;
  13. }
  14. inline int next(int i) { //生成下一个日期
  15. int year,month,day;
  16. day = (i%)+((i/%)*); //取出日
  17. i /= ;
  18. month = (i%)+((i/%)*); //取出月
  19. i /= ;
  20. year = (i%)+((i/%)*)+((i/%)*)+i/*; //取出年
  21. ) && year%) || !(year%)) m[] = ; //判断是否为闰年
  22. day++; //下一天
  23. ) { //若到了月底,则变到下一月
  24. day = ;
  25. month++;
  26. }
  27. ) { //若到了年底,则变到下一年
  28. month = ;
  29. year++;
  30. }
  31. +year*; //把年月日变成8位数字
  32. }
  33. int main() {
  34. freopen("date.in","r",stdin);
  35. freopen("date.out","w",stdout);
  36. ;
  37. scanf("%d%d",&date1,&date2);
  38. for (int i = date1;i <= date2;i = next(i)) //生成date1到date2的所有日期
  39. if (check(i)) ans++; //判断是否回文
  40. printf("%d",ans);
  41. ;
  42. }

T3

考场上写了个暴力模拟,70分......出来后发现还是可以做的,写个队列就行了,超出86400s的就出队

70分考场代码

  1. #include <cstring>
  2. #include <cstdio>
  3. #include <map>
  4. using namespace std;
  5. ],k[];
  6. ];
  7. map<];
  8. int main() {
  9. freopen("port.in","r",stdin);
  10. freopen("port.out","w",stdout);
  11. scanf("%d",&n);
  12. ;i <= n;i++) {
  13. scanf("%d%d",&t[i],&k[i]);
  14. ;j <= k[i];j++) scanf("%d",&x[i][j]);
  15. ,R = i,pos = i;
  16. while (L <= R) {
  17. ;
  18. ) {
  19. pos = mid;
  20. R = mid-;
  21. } ;
  22. }
  23. ;
  24. memset(tmp,false,sizeof(tmp));
  25. for (int j = pos;j <= i;j++)
  26. ;l <= k[j];l++)
  27. if (!tmp[x[j][l]]) {
  28. ans++;
  29. tmp[x[j][l]] = true;
  30. }
  31. printf("%d\n",ans);
  32. }
  33. ;
  34. }
100分代码
  1. #include <cstdio>
  2. #include <queue>
  3. #include <map>
  4. using namespace std;
  5. ,vis[];
  6. struct Queue { int t,x; };
  7. queue<Queue> Q;
  8. inline int read(int &x) { //读入优化
  9. char ch;
  10. ');
  11. x = ch-';
  12. +ch-';
  13. }
  14. int main() {
  15. freopen("port.in","r",stdin);
  16. freopen("port.out","w",stdout);
  17. read(n);
  18. ;i <= n;i++) {
  19. int t,k;
  20. read(t),read(k);
  21. ,x;i <= k;i++) {
  22. read(x);
  23. if (!vis[x]) ans++; //若这个乘客是其他国籍,则统计
  24. vis[x]++; //统计
  25. Q.push((Queue){t,x}); //加入队列
  26. }
  27. while (true) { //把86400以外的排除
  28. Queue head = Q.front();
  29. + <= head.t && head.t <= t) break;
  30. else {
  31. vis[head.x]--;
  32. if (!vis[head.x]) ans--;
  33. Q.pop();
  34. }
  35. }
  36. printf("%d\n",ans);
  37. }
  38. ;
  39. }

T4

考场上想不出,于是打了个暴力,40分......
40分考场暴力代码
  1. #include <cstdio>
  2. int main() {
  3. ],ans[][];
  4. scanf("%d%d",&n,&m);
  5. ;i <= m;i++) scanf("%d",&x[i]);
  6. ;a <= m;a++)
  7. ;b <= m;b++)
  8. if (a != b)
  9. ;c <= m;c++)
  10. if (c != a && c != b && (double)x[b]-(double)x[a] < (double)((double)x[c]-(double)x[b])/3.0)
  11. ;d <= m;d++)
  12. *(x[d]-x[c])) {
  13. ans[a][]++;
  14. ans[b][]++;
  15. ans[c][]++;
  16. ans[d][]++;
  17. }
  18. ;i <= m;i++) printf(],ans[i][],ans[i][],ans[i][]);
  19. ;
  20. }

4重循环是用不到n的,没有白给的条件,没有没用的数据!!!

我们可以把这4个数看作是个数轴上的点,根据题目给的条件,可知AB=2*CD,BC>6*CD,AD>9*CD
那么,我们只需要确定D,就可以确定C点,然后再找AB。我们也可以通过找C来确定ABD。
100分代码
  1. #include <cstdio>
  2. ],vis[],a[],b[],c[],d[];
  3. int main() {
  4. freopen("magic.in","r",stdin);
  5. freopen("magic.out","w",stdout);
  6. scanf("%d%d",&n,&m);
  7. ;i <= m;i++) {
  8. scanf("%d",&x[i]);
  9. vis[x[i]]++; //把所有数记在数轴上
  10. }
  11. ;i <= n/;i++) { //枚举CD的长度
  12. ;
  13. +;j <= n;j++) {
  14.   sum += vis[j-(*i+)]*vis[j-(*i+)+*i];
  15.    d[j] += sum*vis[j-i];
  16.    c[j-i] += sum*vis[j];
  17.    }
  18.   sum = ;
  19.   *i+);j >= ;j--) { //枚举CD两点,确定AB的个数
  20.   sum += vis[j+(*i+)]*vis[j+(*i+)-i];
  21.   a[j] += sum*vis[j+*i];
  22.   b[j+*i] += sum*vis[j];
  23.   }
  24. }
  25. ;i <= m;i++) printf("%d %d %d %d\n",a[x[i]],b[x[i]],c[x[i]],d[x[i]]);
  26. ;
  27. }

noip2016普及组 题解的更多相关文章

  1. [题解]noip2016普及组题解和心得

    [前言] 感觉稍微有些滑稽吧,毕竟每次练的题都是提高组难度的,结果最后的主要任务是普及组抱一个一等奖回来.至于我的分数嘛..还是在你看完题解后写在[后记]里面.废话不多说,开始题解. 第一题可以说的内 ...

  2. noip2016普及组题解和心得

    前言 感觉稍微有些滑稽吧,毕竟每次练的题都是提高组难度的,结果最后的主要任务是普及组抱一个一等奖回来.至于我的分数嘛..还是在你看完题解后写在[后记]里面.废话不多说,开始题解. (其实这篇博客只有题 ...

  3. NOIP2016普及组解题报告

    概述 \(NOIP2016\)普及组的前三题都比较简单,第四题也有很多的暴力分,相信参加了的各位\(OIer\)在\(2016\)年都取得了很好的成绩. 那么,我将会分析\(NOIP2016\)普及组 ...

  4. NOIP2008普及组题解

    NOIP2008普及组题解 从我在其他站的博客直接搬过来的 posted @ 2016-04-16 01:11 然后我又搬回博客园了233333 posted @ 2016-06-05 19:19 T ...

  5. NOIP2016普及组复赛解题报告

    提高组萌新,DAY1DAY2加起来骗分不到300,写写普及组的题目聊以自慰. (附:洛谷题目链接 T1:https://www.luogu.org/problem/show?pid=1909 T2:h ...

  6. NOIP2002-2017普及组题解

    虽然普及组一般都是暴力省一,但是有一些题目还是挺难的qwq个人觉得能进TG的题目会在前面打上'*' NOIP2002(clear) #include<bits/stdc++.h> usin ...

  7. 【做题记录】[NOIP2016 普及组] 魔法阵

    P2119 魔法阵 2016年普及组T4 题意: 给定一系列元素 \(\{X_i\}\) ,求满足以下不等式的每一个元素作为 \(a,b,c,d\) 的出现次数 . \[\begin{cases}X_ ...

  8. NOIP2016普及组

    普及组.代码有空发. 第一题就是买铅笔.暴力模拟绝对可取. 第二题就是回文日期.从t1的年份到t2的年份枚举每一年.头尾要特判. 第三题就是海港.骗了40分. 第四题就是魔法阵.不太好优化. 完.

  9. NOIP2008普及组 题解 -SilverN

    T1 ISBN号码 题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符, 其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符( ...

随机推荐

  1. VBS基本语法

    一.初识VBS Vbs       是一种变量无关.解释性执行的脚本语言.vbs语言中不区分大小写.语句以换行结束. dim        声明变量:批量名称声明,多个变量之间用逗号分隔: set   ...

  2. mysql5.6 无法使用64odbc连接

    win10 64位,mysql5.6 无法使用64 连接odbc,处理:装32位odbc, 使用C:\Windows\SysWOW64\odbcad32.exe 配置.

  3. updateByPrimaryKey和updateByPrimaryKeySelective insert和insertSelective

    这两个update都是使用generator生成的mapper.xml文件中,对dao层的更新操作 updateByPrimaryKey对你注入的字段全部更新(不判断是否为Null) updateBy ...

  4. Spring Security4实例(Java config 版) —— Remember-Me

    本文源码请看这里 相关文章: Spring Security4实例(Java config版)--ajax登录,自定义验证 Spring Security提供了两种remember-me的实现,一种是 ...

  5. 如何在python脚本里面连续执行adb shell后面的各种命令

    如何在python脚本里面连续执行adb shell后面的各种命令 adb shell "cd /data/local && mkdir tmp" adb shel ...

  6. Akka(14): 持久化模式:PersistentActor

    Akka程序的特点之一就是高弹性或者强韧性(resilient)的,因为Actor具有自我修复的能力.当Actor模式的程序出现中断情况如:系统崩溃.人为终结等,系统在重启后有关Actor可以恢复之前 ...

  7. Oozie时出现org.apache.oozie.service.ServiceException: E0103: Could not load service classes, Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

    不多说,直接上干货! 问题详情 查看你的$OOZIE_HOME/logs 我的是/home/hadoop/app/oozie-4.1.0-cdh5.5.4/logs/oozie.log文件 [hado ...

  8. oracle-sql入门练习及答案

    1,通过命令行方式打开sqlplus2,执行登录命令sqlplus scott/scott@192.168.248.129/orcl3进行sqlplus命令测试Set time onSet pages ...

  9. Apache FtpServer 实现文件的上传和下载

    1 下载需要的jar包 Ftp服务器实现文件的上传和下载,主要依赖jar包为: 2 搭建ftp服务器 参考Windows 上搭建Apache FtpServer,搭建ftp服务器 3 主要代码 在ec ...

  10. 查看ubuntu的内核版本&获取roo…

    1.查看内核版本命令 [root@AY130616190837708391Z ~]# cd .. (管理员权限) [root@AY130616190837708391Z /]# cd proc [ro ...