同上一篇博客;

贪心题目我已经刷了将近30道了,由于那几天考驾照就没写,以后有空的时候补过来吧,都在codeblock里

pat的题也刷了点,acwing 的题也刷了点,基本都攒下了。以后也会慢慢补过来的

这几天都在备战四级,上午司机下午算法,有点忙不过来就一直没写博客,今天打完比赛就想趁热写一下吧,正好昨天也做了22年夏的甲级考试

来说说pat甲级:

第一次做pat甲级考试真题感受,一共4道题须在3个小时内做完,我感觉这真的是时间很充裕了

同时四道题的难度可能也是逐级拉开的,通常甲级前两道题是可以A出来的,对于高手们来讲满分直接轻轻松松,但是或许我甲级题库刷的还不少很多并且很多算法和数据结构有点手生了,就比如二叉树和图论的一些算法就不太会写了。。。。。甚至第三道题建立邻接表的时候我都在想邻接表是怎么写来着???

所以说第一次做就只做了前两道

在经过和队友的讨论和算法构思上把第三道自己不会的题目也是顺利切了,最后一道题是考的完全多叉树的遍历,由于树的知识点还没有开始全面复习就只能等刷完list之后在补了

题目大意:两小儿争辩日期,A小儿和B小儿分别说了三个日期:y(昨天),td(今天),tom(明天,哟,这不快明天了吗),并且这两个小儿说的话每人只有一句真话,确认今天的同时输出today并且输出那两句话为真并且输出他们是y or td or tom;

题目思路:他们两个人每人只有一句话为真,所以我们只要是标记他们的话与1~7的匹配,如果他们匹配次数都是1,就说明他们的话不仅连了起来并且那两句话是真话,

打的string表在标记后输出就可以了;

 1 #include<bits/stdc++.h>//2022 pat 甲级1
2 using namespace std;
3 #define int long long
4 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
5 int a,b,c;
6 int d,e,f;
7 int yes[10]={6,0,1,2,3,4,5};
8 int fut[10]={1,2,3,4,5,6,0};
9 string day[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
10 int cur1;
11 int cur2;
12 int flag1;
13 int flag2;
14 string t[7]={"yesterday","today","tomorrow"};
15 signed main()
16 {
17 IOS;
18 cin>>a>>b>>c>>d>>e>>f;
19 for(int i=0;i<7;i++)
20 {
21 int cur1=0,cur2=0;
22 int flag1=0,flag2=0;
23 if(a==yes[i])
24 {
25 cur1++;
26 flag1=0;
27 }
28 if(b==i)
29 {
30 cur1++;
31 flag1=1;
32 }
33 if(c==fut[i])
34 {
35 cur1++;
36 flag1=2;
37 }
38 if(d==yes[i])
39 {
40 cur2++;
41 flag2=0;
42 }
43 if(e==i)
44 {
45 cur2++;
46 flag2=1;
47 }
48 if(f==fut[i])
49 {
50 cur2++;
51 flag2=2;
52 }
53 if(cur1==1&&cur2==1)
54 {
55 cout<<day[i]<<endl;
56 cout<<t[flag1]<<endl;
57 cout<<t[flag2];
58 return 0;
59 }
60 }
61 return 0;
62 }

题目大意:模拟LRU算法,所谓的LRU算法就是访问页面次数最小的网页会在进来新网页的时候被kick off

面向样例:

6,

可以这样来看(其实上图已经很明确了....)

4 11
1 2 3 1 4 5 2 1 5 6 3

先进来的是1,2,3,1四个网页,并且当前网页1的访问次数是2,所以说当前网页2是LRU状态,在进来网页4,达到满值n,再进来网页5,网页2是LRU状态被开,再进来网页2,网页3是LRU状态被开,再进来网页1,网页4是LRU状态被开并且网页1的访问次数是3,在5,6,3........

那怎么来写代码呢

首先直观感受是用queue了,并且还有一个数组来记录被开的网页和记录网页访问次数的数组,所以说可以酱紫分析:

首先是将每个网页入队,如果没有达到满值状态就记入队并且记录网页访问次数,同时未被访问的网页入队的时候计数器也要加一;

当计数器大于n时候也就是达到满值状态的时候,首先要考虑这个网页没有被访问过的情况

如果它没有被访问过,我们要找的肯定是下一个LRU状态就是按照次序删除访问页最少的网页,所以就每次取队头找最少访问网页,找到以后直接进入记录数组且出队并且减少访问次数(因为已经被弹出了)

参考代码:

 1 #include<bits/stdc++.h>//2022 pat 甲级2
2 using namespace std;
3 #define int long long
4 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
5 const int N=1e5+10;
6 //int a[N];
7 //map<int,int>p;
8 int f[N];
9 queue<int>p;
10 vector<int>q;
11 int n,m;
12 int cnt;
13 signed main()
14 {
15 IOS;
16 cin>>n>>m;
17 for(int i=0;i<m;i++)
18 {
19 int a;
20 cin>>a;
21 if(cnt<n)
22 {
23 p.push(a);
24 if(!f[a])
25 cnt++;
26 f[a]++;
27 }
28 else
29 {
30 if(!f[a])
31 {
32 while(f[p.front()]!=1)
33 {
34 f[p.front()]--;
35 p.pop();
36 }
37 q.push_back(p.front());
38 f[p.front()]--;
39 p.pop();
40 }
41 p.push(a);
42 f[a]++;
43 }
44 }
45 for(int i=0;i<q.size();i++)
46 {
47 cout<<q[i];
48 if(i<q.size()-1)
49 cout<<" ";
50 }
51 return 0;
52 }

题目思路:

没采用dfs一是因为怕爆栈,二是因为dfs在处理没有下一个地址的时候的回溯和对于重复走的点的处理有点麻烦了,就选择了模拟dfs

参考代码:

#include<bits/stdc++.h>//pat夏甲级3
using namespace std;
#define int long long
#define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
const int N=1e4+10;
vector<int>G[N];
int s[N];
bool vis[1010];
bool f[1010][1010];
int t[1010];
signed main()
{
IOS;
int n,m,k;
cin>>n>>m>>k;
for(int i=0;i<m;i++)
{
int a,b;
cin>>a>>b;
f[a][b]=true;
G[a].push_back(b);
}
while(k--)
{
memset(t,0,sizeof(t));
memset(vis,false,sizeof(vis));
for(int i=0;i<n;i++)
{
cin>>s[i];
t[s[i]]++;
}
bool flag1=true;
for(int i=0;i<n;i++){
if(t[s[i]]!=1)
flag1=false;
}
bool flag2=true;
for(int i=0;i<n;i++)
{
int st=s[i];
int ed=s[i+1];
vis[st]=true;
if(!f[st][ed])
{
for(int j=0;j<G[st].size();j++)
{
int v=G[st][j];
if(!vis[v])
{
flag2=false;
}
}
}
}
if(flag1&&flag2)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}

太困了太困了,有些细节没写,明天再写吧,困死我了

pat甲级考试+pat1051+1056的更多相关文章

  1. 2021.9.12周六PAT甲级考试复盘与总结

    周六PAT甲级考试复盘与总结 先说结论:仍未步入"高手"行列:现在的学习节奏与方法是对的,有十万分的必要坚持下去. 题目 知识点 分数 T1 前缀和.二分 11 / 20 T2 排 ...

  2. 2019年春PAT甲级考试

    这次考试不是很理想,一道题目没能做完. 自己原因差不多三条: 1.自己实力不够,准备时间也有点仓促,自己没能做到每道题目都有清晰的思路. 2.考试的心理素质不行,因为设备原因东奔西跑浪费了挺多时间,自 ...

  3. 2019秋季PAT甲级_备考总结

    2019 秋季 PAT 甲级 备考总结 在 2019/9/8 的 PAT 甲级考试中拿到了满分,考试题目的C++题解记录在这里,此处对备考过程和考试情况做一个总结.如果我的方法能帮助到碰巧点进来的有缘 ...

  4. PAT甲级满分有感

    时间轴: 2017年,数据结构加入了我的课程清单. 2018年12月,我从网易云课堂下载了数据结构的所有课程视频(学校里没有网,只能离线看),开始一刷.一刷只看了视频,基本没有做题,看到AVL树的时候 ...

  5. PAT甲级满分攻略|记一次考试经历

    一次考试经历 今天是"大雪",很冷. 来到隔壁的学校考试,记得上一次来河中医是两年前大一刚开学吧,那天晚上印象比较深刻,6个室友骑车到处闲逛.当时还不会Hello world. 很 ...

  6. PAT甲级考前整理(2019年3月备考)之一

       转载请注明出处:https://www.cnblogs.com/jlyg/p/7525244.html 终于在考前,刷完PAT甲级131道题目,不容易!!!每天沉迷在刷题之中而不能超脱,也是一种 ...

  7. PAT甲级题解(慢慢刷中)

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6102219.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  8. PAT甲级考前整理(2019年3月备考)之三,持续更新中.....

    PAT甲级考前整理一:https://www.cnblogs.com/jlyg/p/7525244.html,主要讲了131题的易错题及坑点 PAT甲级考前整理二:https://www.cnblog ...

  9. PAT甲级题分类汇编——排序

    本文为PAT甲级分类汇编系列文章. 排序题,就是以排序算法为主的题.纯排序,用 std::sort 就能解决的那种,20分都算不上,只能放在乙级,甲级的排序题要么是排序的规则复杂,要么是排完序还要做点 ...

随机推荐

  1. Spring Boot整合模板引擎jsp

    jsp也算是一种模板引擎吧.整合jsp前,先说一下运行SpringBoot项目的几种方式 1. 运行SpringBoot项目的几种方式 1.1 使用内嵌Tomcat运行项目 在IDE中右键运行启动类, ...

  2. Fail2ban 配置详解 动作配置

    ### # 包含配置 ### [INCLUDES] before = iptables-common.conf ### # 定义动作 ### [Definition] actionstart = &l ...

  3. 每天一个 HTTP 状态码 前言

    前前言 在重新开始写博文(其实大多也就最多算是日常笔记小结)之际,就想着从短小精悍的文章入手,就想到了 HTTP 状态码.另外,记得很久之前,看过一个<每天一个 Linux 命令>系列文章 ...

  4. [CF1073G]LCP问题

    题意:给一个长n的字符串S,q组询问,每组给两个集合A,B.求集合A中的点和集合B中的点所有组合情况的lcp的和. 思路: 好像比较常规,可是代码能力差还是调了1.5h.主要还是虚树板子不熟(加入的时 ...

  5. uni-simple-router

    目录 uni-simple-router 一.快速上手 扩一:webpack插件之DefinePlugin 扩二:uni-read-pages 如何获取pages.json中的路由 二.H5模式 2. ...

  6. c++ 平衡树

    平衡树的性质 它其实就是一个 BST(Binary Search Tree 二叉搜索树). 当然,不同的平衡树会有自己的特性 BST 的性质 只有一个:任意一个节点的左子树的所有节点都比它的优先级高, ...

  7. 『忘了再学』Shell基础 — 31、字符处理相关命令

    目录 1.排序命令sort (1)sort命令介绍 (2)练习 2.取消重复行命令uniq 3.统计命令wc 1.排序命令sort (1)sort命令介绍 sort命令可针对文本文件的内容,以行为单位 ...

  8. 6000字Locust入门详解

    目录 一.Locust 性能测试 (一). 性能测试工具 主流性能测试工具对比 认识Locust (二) locust 基本用法 1.安装locust 2.编写用例 3. 启动测试 GUI 模式启动 ...

  9. BUUCTF-后门查杀

    后门查杀 后门查杀这种题最好还是整个D盾直接扫描目录方便. 查看文件得到flag

  10. SAP LUW 实现提交数据库更新

    CALL FUNCTION 'TRANSACTION_BEGIN' IMPORTING transaction_id = lv_transaction_id. * 更新日志表 MODIFY zfit0 ...