20160827考试总结

这次试题预期是NOIp提高难度的,除去T0没写外其他感觉还可以,不写T0一个原因是想按照NOIp的考试模式来,不打乱节奏,另一个是第一题不是一眼题,感觉需要时间思考。所以就只写了其他三道题。

T1:

之前考过的一道题,去年这个时候写了个复杂度爆炸的,这次换了个讨巧的写法,比较满意。没什么好说的。

 1 //NOIp car
 2 //by Cydiater
 3 //2016.8.27
 4 #include <iostream>
 5 #include <cstring>
 6 #include <string>
 7 #include <cstdio>
 8 #include <cstdlib>
 9 #include <iomanip>
10 #include <ctime>
11 #include <algorithm>
12 #include <queue>
13 #include <cmath>
14 #include <string>
15 using namespace std;
16 #define ll long long
17 #define up(i,j,n)       for(int i=j;i<=n;i++)
18 #define down(i,j,n)     for(int i=j;i>=n;i--)
19 #define FILE "car"
20 const int MAXN=1e5;
21 const int oo=0x3f3f3f3f;
22 inline int read(){
23       char ch=getchar();int x=0,f=1;
24       while(ch>‘9‘||ch<‘0‘){if(ch==‘-‘)f=-1;ch=getchar();}
25       while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();}
26       return x*f;
27 }
28 int N,M,D,L,sp[MAXN],cnt=0,count[MAXN],num,ans=0;
29 priority_queue<int>q;
30 namespace solution{
31       void init(){
32             N=read();M=read();D=read();L=read();
33             up(i,1,N)sp[i]=read();
34             sort(sp+1,sp+N+1);
35       }
36       void slove(){
37             up(i,1,M)q.push(0);
38             up(i,1,N){
39                   int num=q.top();q.pop();
40                   num=-num;
41                   if(sp[i]-num>=L){
42                         num+=D;
43                         ans++;
44                   }
45                   num=-num;
46                   q.push(num);
47             }
48       }
49       void output(){
50             cout<<ans<<endl;
51       }
52 }
53 int main(){
54       //freopen("input.in","r",stdin);
55       freopen(FILE".in","r",stdin);
56       freopen(FILE".out","w",stdout);
57       using namespace solution;
58       init();
59       slove();
60       output();
61       return 0;
62 }

T2:

整场考试最失败的一道题,不是因为没写出来,是因为我已经很明显的知道这道题的策略是什么了,但是最后还是因为忽略了一些情况导致WA掉了,放在T2这道贪心其实还是简单了点。这类题在NOIp的考场上似乎已经很少见了。

 1 //NOIp 0827 T3
 2 //by Cydiater
 3 //2016.8.27
 4 #include <iostream>
 5 #include <cstring>
 6 #include <ctime>
 7 #include <cmath>
 8 #include <cstdlib>
 9 #include <cstring>
10 #include <string>
11 #include <algorithm>
12 #include <queue>
13 #include <map>
14 #include <iomanip>
15 using namespace std;
16 #define ll long long
17 #define up(i,j,n)       for(int i=j;i<=n;i++)
18 #define down(i,j,n)     for(int i=j;i>=n;i--)
19 #define FILE "sort"
20 const int MAXN=1e5+5;
21 const int oo=0x3f3f3f3f;
22 inline int read(){
23       char ch=getchar();int x=0,f=1;
24       while(ch>‘9‘||ch<‘0‘){if(ch==‘-‘)f=-1;ch=getchar();}
25       while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();}
26       return x*f;
27 }
28 map<int,int>m;
29 int N,a[MAXN],tmp[MAXN],cnt=0,ans=0,Count[MAXN];
30 namespace solution{
31       void init(){
32             N=read();
33             up(i,1,N){
34                   a[i]=read();
35                   tmp[i]=a[i];
36             }
37             memset(Count,0,sizeof(Count));
38             sort(tmp+1,tmp+N+1);
39             up(i,1,N)m[tmp[i]]=++cnt;
40             up(i,1,N)a[i]=m[a[i]];
41       }
42       void slove(){
43             up(i,1,N){
44                   Count[a[i]]=Count[a[i]-1]+1;
45                   ans=max(ans,Count[a[i]]);
46             }
47       }
48       void output(){
49             cout<<N-ans<<endl;
50       }
51 }
52 int main(){
53       //freopen("input.in","r",stdin);
54       freopen(FILE".in","r",stdin);
55       freopen(FILE".out","w",stdout);
56       using namespace solution;
57       init();
58       slove();
59       output();
60       return 0;
61 }

T3:

相同类型的题做过无数遍了,虽然考场上A掉了,但是后来查了一下代码发现其实有些问题考虑的太多了,本质上还是没有多加思考。myy的格言

Think twice,code once

在比赛的时候一些题还是要多想想再去实现,可以避免掉很多的错误。

  1 //NOIp 0827 T4
  2 //by Cydiater
  3 //2016.8.27
  4 #include <iostream>
  5 #include <cstring>
  6 #include <string>
  7 #include <algorithm>
  8 #include <queue>
  9 #include <map>
 10 #include <ctime>
 11 #include <cmath>
 12 #include <iomanip>
 13 #include <cstdlib>
 14 #include <cstdio>
 15 using namespace std;
 16 #define ll long long
 17 #define up(i,j,n)       for(int i=j;i<=n;i++)
 18 #define down(i,j,n)     for(int i=j;i>=n;i--)
 19 #define FILE "salenet"
 20 const int MAXN=1e5+5;;
 21 const int oo=0x3f3f3f3f;
 22 inline int read(){
 23       char ch=getchar();int x=0,f=1;
 24       while(ch>‘9‘||ch<‘0‘){if(ch==‘-‘)f=-1;ch=getchar();}
 25       while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();}
 26       return x*f;
 27 }
 28 int N,P,M,LINK[MAXN],len=0,V[MAXN],Value[MAXN],dfn[MAXN],low[MAXN],stack[MAXN],top=0,dfs_clock=0,group[MAXN],group_num=0,Link[MAXN],LEN=0,du[MAXN],q[MAXN],head,tail,final_du[MAXN],ans=0;
 29 bool vis[MAXN];
 30 struct edge{
 31       int x,y,next;
 32 }e[MAXN],E[MAXN];
 33 namespace solution{
 34       inline void insert(int x,int y){e[++len].next=LINK[x];LINK[x]=len;e[len].y=y;e[len].x=x;}
 35       inline void Insert(int x,int y){E[++LEN].next=Link[x];Link[x]=LEN;E[LEN].y=y;E[LEN].x=x;}
 36       void init(){
 37             N=read();P=read();
 38             up(i,1,N)Value[i]=V[i]=oo;
 39             up(i,1,P){
 40                   int node=read();
 41                   V[node]=read();
 42             }
 43             M=read();
 44             up(i,1,M){
 45                   int x=read(),y=read();
 46                   insert(x,y);
 47             }
 48       }
 49       void tarjan(int node){
 50             vis[node]=1;stack[++top]=node;
 51             low[node]=dfn[node]=++dfs_clock;
 52             for(int i=LINK[node];i;i=e[i].next)
 53                   if(!dfn[e[i].y]){
 54                         tarjan(e[i].y);
 55                         low[node]=min(low[node],low[e[i].y]);
 56                   }else if(vis[e[i].y]) low[node]=min(low[node],dfn[e[i].y]);
 57             if(dfn[node]==low[node]){
 58                   group_num++;int tmp;
 59                   do{
 60                         tmp=stack[top--];
 61                         vis[tmp]=0;
 62                         group[tmp]=group_num;
 63                         Value[group_num]=min(Value[group_num],V[tmp]);
 64                   }while(tmp!=node);
 65             }
 66       }
 67       void Tree_DP(){
 68             head=1;tail=0;
 69             up(i,1,group_num)if(du[i]==0)q[++tail]=i;
 70             for(;head<=tail;head++){
 71                   int node=q[head],tmp=0;
 72                   bool flag=0;
 73                   for(int i=Link[node];i;i=E[i].next)
 74                         if(du[E[i].y]==0){tmp+=Value[E[i].y];flag=1;}
 75                         else if(--du[E[i].y]==0){
 76                               q[++tail]=E[i].y;
 77                         }
 78                   if(Value[node]==oo||!flag)continue;
 79                   Value[node]=min(Value[node],tmp);
 80             }
 81       }
 82       void slove(){
 83             //pre build
 84             memset(dfn,0,sizeof(dfn));
 85             memset(vis,0,sizeof(vis));
 86             memset(du,0,sizeof(du));
 87             memset(final_du,0,sizeof(final_du));
 88             up(i,1,N)if(!dfn[i])tarjan(i);
 89             up(i,1,len){
 90                   int x=e[i].x,y=e[i].y;
 91                   if(group[x]!=group[y]){
 92                         Insert(group[x],group[y]);
 93                         final_du[group[y]]++;du[group[x]]++;
 94                   }
 95             }
 96             Tree_DP();/*work for lowest cost*/
 97       }
 98       void output(){
 99             up(i,1,N)if(final_du[group[i]]==0&&Value[group[i]]>=oo){
100                   puts("NO");
101                   cout<<i<<endl;
102                   return;
103             }
104             up(i,1,group_num)if(final_du[i]==0)ans+=Value[i];
105             puts("YES");
106             cout<<ans<<endl;
107       }
108 }
109 int main(){
110       freopen(FILE".in","r",stdin);
111       freopen(FILE".out","w",stdout);
112       //freopen("input.in","r",stdin);
113       using namespace solution;
114       init();
115       slove();
116       output();
117       return 0;
118 }

我的目标在我当前的实力之上,而我会时不时出现实力以内的失误,这是很可怕的。考试的节奏现在已经控制的差不多了,我还需要投入更多的时间在自身能力上。一切以失误为失败的借口都是实力不够的虚荣心作祟。

时间: 2024-10-06 22:34:29

20160827考试总结的相关文章

高等代数期末考试

高等代数的最后一站,有惊无险. 高等代数期末考试试题

在线考试系统(Online Exam System)--ASP.NET

用户设计 -|学生 -|老师 -|管理员 学生结构设计 -|个人信息管理 -|修改个人信息 -|修改登录密码 -|选课中心 -|显示所有老师所开课的信息可进行选课 -|显示自己已选课程 -|在线考试 -|对已选老师开设的课程选择进行考试 -|成绩查询 -|查看自己考试成绩   老师结构设计 -|个人信息管理 -|修改个人信息 -|修改登录密码 -|课程管理 -|显示学校开设的课程(老师可选择添加课程) -|显示老师开设的课程 -|考试管理 -|显示老师自己开设的课程 -|对课程添加试题(选择.填

Java编程练习之输出考试成绩的前三名

在慕课网学习的时候遇到了这样一个Java编程练习题,正好对所学习的Java基础知识检验一下: 请根据所学知识,编写一个Java程序,实现输出考试成绩的前三名 要求: 1考试成绩已保存在数组scores中,数组元素依次为89 , -23 , 64 , 91 , 119 , 52 , 73 2要求通过自定义方法来实现成绩排名并输出操作,将成绩数组作为参数传入 3要求判断成绩的有效性( 0-100 ),如果成绩无效,则忽略此成绩 我自己分析了一下这个程序的过程: (1)首先是定义一个包含整型数组参数的

高级工程考试通过总结

2015年12月15日公布的高级工程师评审公示,我终于通过了,结果在意料之中,回过头来对整个过程进行总结,希望对考试的朋友有所帮助: 1.提前准备 (1)英语及计算机资格考试 高级工程师的考试有很多需要提前准备的,比如英语资格考试,计算机资格考试等,这些都应该在准备考试高工前搞定,这是必须条件. 计算机资格:http://www.bjrbj.gov.cn/bjpta/test_447/ksjs/jsj/ 英语资格考试:http://www.bjrbj.gov.cn/bjpta/test_447/

浙江大学软件学院三维动画与交互技术考试概念整理

第一讲 1.    增强现实技术AR: --融合了三维动画.立体视觉和图像处理: --建模.渲染.位置标定.图像融合: 2.    OpenGL是一种用于创建实时3D图像的编程接口. 3.    三维这个术语表示一个正在描述或显示的物体具有三维维度:宽度.高度.深度: --计算机3D图形实质上也是平面的: --在计算机屏幕上显示的二维图像,提供深度(或第三维)的错觉: 2D+透视 = 3D 透视使人产生深度的错觉. 4.    真正的3D是通过人的两只眼睛观察同一个物体,在视网膜上生成具有视差的

V5天下-安德揭密CCIEv5认证考试 就业和前途

在笔者看来,RSCCIEv5,这都不是事儿!您看Yeslab(上海)学员--来自思科的妹子一举拿下CCIEv5.0认证!!又一位double 女IE诞生 那么什么是事儿? 如何学习是事儿!这是我们提到的第一件事 笔者从最初的沁园公寓701室(Yeslab最原始的老巢),到沁园公寓907室(Yeslab的第一步扩张),之后搬到苏州长远天地1005室,又扩展到长远天地601室(Yeslab安全和DC的基地),再之后到,安德作为小弟和几位同僚奔赴上海这个国际大都市,我们的小圈子从华鼎大厦16D开始,而

数据库期末考试复习题 第一章

作者 : Dolphin 原文地址:http://blog.csdn.net/qingdujun/article/details/27820507 一.单项选择题: 1. 位于用户和操作系统之间的一层数据管理软件是  C    . A.DBS  B.DB  C.DBMS  D.MIS 2. 数据库系统中的数据模型通常由    A     三部分组成. A.数据结构.数据操作和完整性约束 B.数据定义.数据操作和安全性约束 C.数据结构.数据管理和数据保护 D.数据定义.数据管理和运行控制 3. 

分享CISSP CBT考试经验

各位前辈大家好:小弟在今年四月初通过了CISSP CBT考试,在这想跟大家分享一下准备心得与考试经验,让更多想通过考试的伙伴能对考试有更多的认识.我在2009年的10-11月份週二与週四晚间到参加汇哲开的CISSP课程,有老师系统性的介绍,让我入门的速度更快,不然有十个CBK,在日常工作是无法完全Cover的,补一个题外话,上完课没多久,我们公司不幸发生失火,此时BCP的训练就派上用场了,刚好可以验证所学与协助公司的MIS快速的回复系统资料,这也是让人意外的实务经验^ ^强烈建议刚开始准备的伙伴

全国计算机等级考试二级C语言程序设计考试大纲(2013年版)

转自:http://www.freencre.com/c2_artde_28.html 基本要求 1. 熟悉Visual C++6. 0集成开发环境. 2. 掌握结构化程序设计的方法,具有良好的程序设计风格. 3. 掌握程序设计中简单的数据结构和算法并能阅读简单的程序. 4. 在Visual C++6. 0集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力. 考试内容 一.C语言程序的结构 1. 程序的构成,main函数和其他函数. 2. 头文件,数据说明,函数的开始和结束标志以