卖书

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 1000010
using namespace std;
int n,a[maxn],cnt1,cnt2;
int qread(){int i=0;char ch=getchar();while(ch<'0'||ch>'9')ch=getchar();while(ch<='9'&&ch>='0'){i=i*10+ch-'0';ch=getchar();}return i;
}
int main(){freopen("book.in","r",stdin);freopen("book.out","w",stdout);
//    freopen("Cola.txt","r",stdin);scanf("%d",&n);for(int i=1;i<=n;i++)a[i]=qread();for(int i=1;i<=n;i++){if(a[i]==5)cnt1++;if(a[i]==10){if(cnt1==0){puts("NO");return 0;}else {cnt2++;cnt1--;}}if(a[i]==20){if(cnt1==0||(cnt2==0&&cnt1<3)){puts("NO");return 0;}if(cnt2){cnt2--;cnt1--;}else{cnt1-=3;}}}puts("YES");return 0;
}

100分 贪心

写代码

#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 1000010
using namespace std;
int n,a[maxn],s1[maxn],s2[maxn],top1,top2,m,sid1[maxn],sid2[maxn],b[maxn];
bool ex[maxn];
void out(){for(int i=1;i<=n;i++){if(b[i]==1)printf("+%d ",a[i]);else printf("-%d ",a[i]);}
}
int main(){freopen("program.in","r",stdin);freopen("program.out","w",stdout);
//    freopen("Cola.txt","r",stdin);scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);scanf("%d",&m);int x;for(int i=1;i<=m;i++){scanf("%d",&x);ex[x]=1;}for(int i=1;i<=n;i++){if(ex[i]){top2+=1;s2[top2]=a[i];b[i]=-1;sid2[top2]=i;while(top2){if(s2[top2]==s1[top1]){b[sid2[top2]]=-1;b[sid1[top1]]=1;top1-=1;top2-=1;}else{sid2[top2+1]=sid1[top1];top2+=1;s2[top2]=s1[top1];top1-=1;}if(top1<0){puts("NO");return 0;}}}else{top1+=1;s1[top1]=a[i];sid1[top1]=i;}}if(top1==0&&top2==0){out();return 0;}while(top1){s2[++top2]=s1[top1];sid2[top2]=sid1[top1];top1--;while(top2){if(s2[top2]==s1[top1]){b[sid2[top2]]=-1;b[sid1[top1]]=1;top1--;top2--;}else{sid2[top2+1]=sid1[top1];s2[++top2]=s1[top1--];}if(top1<0){puts("NO");return 0;}}}out();return 0;
}

100分 括号匹配

迷宫

#include<iostream>
#include<cstdio>
#include<vector>
#define maxn 110
using namespace std;
int n,m,num,head[maxn],q,s,t,st[maxn],top;
struct node{int to,pre,v;
}e[maxn*maxn*5];
void Insert(int from,int to,int v){e[++num].to=to;e[num].v=v;e[num].pre=head[from];head[from]=num;
}
bool vis[maxn],flag;
void dfs(int now){if(now==t&&top==0){flag=1;return;}if(flag)return;vector<int>zu;for(int i=1;i<=top;i++)zu.push_back(st[i]);for(int i=head[now];i;i=e[i].pre){int to=e[i].to;if(vis[to])continue;else{vis[to]=1;if(e[i].v==0){dfs(to);top=0;for(int j=0;j<zu.size();j++)st[++top]=zu[j];vis[to]=0;continue;}for(int j=1;j<=10;j+=2){if(e[i].v>0){for(int k=1;k<=j;k++){top=top+1;st[top]=e[i].v;}dfs(to);if(flag)return;top=0;for(int k=0;k<zu.size();k++)top=top+1,st[top]=zu[k];}if(e[i].v<0){top-=j-1;if(st[top]!=-e[i].v||top<1)break;else top-=1;dfs(to);top=0;for(int k=0;k<zu.size();k++)st[++top]=zu[k];}}vis[to]=0;}}
}
int main(){freopen("maze.in","r",stdin);freopen("maze.out","w",stdout);
//    freopen("Cola.txt","r",stdin);scanf("%d%d",&n,&m);int x,y,z;for(int i=1;i<=m;i++){scanf("%d%d%d",&x,&y,&z);Insert(x,y,z);Insert(y,x,z);}scanf("%d",&q);while(q--){flag=0;top=0;scanf("%d%d",&s,&t);vis[s]=1;dfs(s);vis[s]=1;if(flag)puts("YES");else puts("NO");}return 0;
}

5分 暴力

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
using namespace std;
int n,m,g[105][105][40],q[105*105*40][3],t,x,y,z;
int main(){
//    freopen("maze.in","r",stdin);freopen("maze.out","w",stdout);freopen("maze20.in","r",stdin);scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){scanf("%d%d%d",&x,&y,&z);if(z!=0){if(z<0)z=abs(z);else z+=10;g[x][y][z]=1;g[y][x][z]=1;}else{g[x][y][z]=1;g[y][x][z]=1;t++;q[t][0]=x;q[t][1]=y;q[t][2]=0;t++;q[t][0]=y;q[t][1]=x;q[t][2]=0;}}for(int i=1;i<=n;i++){g[i][i][0]=1;t++;q[t][0]=i;q[t][1]=i;q[t][2]=0;}for(int s=1;s<=t;s++){int x=q[s][0],y=q[s][1],sta=q[s][2];if(sta!=0){for(int i=1;i<=n;i++){if(g[i][x][sta-10]==1){if(g[i][y][0]==0){g[i][y][0]=1;t++;q[t][0]=i;q[t][1]=y;q[t][2]=0;}}}}else{for(int i=1;i<=n;i++){if(g[i][x][0]==1&&g[i][y][0]==0){g[i][y][0]=1;t++;q[t][0]=i;q[t][1]=y;q[t][2]=0;}if(g[y][i][0]==1&&g[x][i][0]==0){g[x][i][0]=1;t++;q[t][0]=x;q[t][1]=i;q[t][2]=0;}for(int j=1;j<=10;j++){if(g[y][i][j]==1&&g[x][i][j+20]==0){g[x][i][j+20]=1;t++;q[t][0]=x;q[t][1]=i;q[t][2]=j+20;}}}}}int tt=0;scanf("%d",&tt);for(;tt;tt--){scanf("%d%d",&x,&y);if(g[x][y][0]==1)puts("YES");else puts("NO");}
}

100分 动态规划

预计得分100+80+0
实际得分100+100+5
T1较简单,是以前做过的原题。T2看到函数递归就觉得应该和栈有关系,仔细研究,这不就是个括号序列吗,一开始以为要用双向链表,后来发现加个数组记录一下id,再加一个栈模拟退栈就好了,虽然和标解不太一样,但是A了。T3我思索良久,想过建分层图,但复杂度太高,正确性也很玄学,所以就写了个dfs,才搜了5分
今天的题都是关于栈的,发挥的还好,但我觉得T3的dfs应该再优化一下,尽量拿到更多部分分

小结

转载于:https://www.cnblogs.com/thmyl/p/7770860.html

清北刷题冲刺 11-02 a.m相关推荐

  1. 国庆清北刷题冲刺班 Day3 上午

    a [问题描述] 你是能看到第一题的 friends 呢. --hja 怎么快速记单词呢?也许把单词分类再记单词是个不错的选择.何大爷给 出了一种分单词的方法,何大爷认为两个单词是同一类的当这两个单词 ...

  2. 国庆清北刷题冲刺班 Day6 上午

    1. 角谷猜想 (kakutani.pas/c/cpp) (kakutani.in/out) 时间限制:1s/空间限制:256M [题目描述] 某个名字末尾是 654321 的小 A 同学是个大家眼中 ...

  3. 清北刷题10.23night

    NOIP 模拟赛 张若天 2018 年 10 ⽉ 23 ⽇ 题⽬名称 监听 实验室 ⽂明 可执⾏⽂件名 monitor lab civilization 输⼊⽂件名 monitor.in lab.in ...

  4. 重走长征路---OI每周刷题记录---11月16日 2013

    总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...

  5. 重走长征路---OI每周刷题记录---11月4日 2013

    总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...

  6. LeetCode刷题记录11——290. Word Pattern(easy)

    LeetCode刷题记录11--290. Word Pattern(easy) 目录 LeetCode刷题记录11--290. Word Pattern(easy) 题目 语言 思路 源码 后记 题目 ...

  7. 《剑指 Offer I》刷题笔记 11 ~ 19 题

    <剑指 Offer I>刷题笔记 11 ~ 19 题 查找算法(中等) 11. 二维数组中的查找 _解法 1:暴力迭代 解法 2:标志数 解法 3:逐行二分 12. 旋转数组的最小数字 _ ...

  8. 操作系统,计算机网络,数据库刷题笔记11

    操作系统,计算机网络,数据库刷题笔记11 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其s ...

  9. [SWPUCTF] 2021新生赛之Crypto篇刷题记录(11)

    [SWPUCTF] 2021新生赛之Crypto篇刷题记录① [SWPUCTF 2021 新生赛]crypto6 [SWPUCTF 2021 新生赛]ez_caesar [SWPUCTF 2021 新 ...

最新文章

  1. Django:模型model和数据库mysql(一)
  2. 基于按annotation的hibernate主键生成策略
  3. linux shell判断文件、目录是否存在并移动到指定位置
  4. vim改变与选择字休大小的方法
  5. java cucumber_为Java + STANDARD值引入Cucumber
  6. Qt学习笔记(持续更新)
  7. MySQL流浪记(四)—— DDL和DML区别与介绍
  8. 英特尔处理器的性能监控事件文件下载
  9. JS 获取指定URL的时间
  10. 如何自动升级php数据库,php – 如何在现实世界中“升级”数据库?
  11. 旅游网站设计制作方案
  12. 波士顿大学计算机科学与技术专业,波士顿大学计算机科学专业.pdf
  13. 【参赛作品31】openGauss和PostgreSQL的源码目录结构对比
  14. Apple有史以来屏幕最大的手机iPhone 12最新超详细揭秘
  15. List.stream()常用的操作
  16. A. Shifting Stacks
  17. qq计算机无法启动程序丢失MS,Win10无法运行QQ怎么回事 QQ提示缺少MSVCR100.dll解决方法...
  18. 安全漏洞-报错页面泄露文件路径
  19. 查找/下载文献的一些网址汇总
  20. Linux 禁用笔记本触摸板

热门文章

  1. leetcode 215.数组中的第K个最大元素
  2. C++ 中的左值(Lvalues)和右值(Rvalues)
  3. 常说SCI论文有多少篇,那你知道SCI是什么吗?
  4. 全球最快学术超算Frontera,也用英特尔至强可扩展处理器
  5. 深度学习(计算机视觉)面试中问题(一)
  6. 域控制器服务器端和客户端设置
  7. 058_JavaScript函数arguments对象
  8. 033_字符集和编码
  9. RecyclerView列表控件漂亮时间线实现
  10. Linux常用系统备份、恢复命令