CCF URL映射(大模拟)

CCF CSP认证菜鸟刷题日志 CCF CSP目录(c/c++) 萌新把代码贴出来求大佬指教orz 201312 201312-1 出现次数最多的数 201312-2 ISBN号码 201312-3 最大的矩形 201312-4 有趣的数 201312-5 I’m stuck! 阅读详情
#include <bits/stdc++.h>
using namespace std;
#define FOR0(a,b) for(int i = a; i < b; ++i)
#define FORE(a,b) for(int i = a; i <= b; ++i)
typedef long long ll;
typedef pair<int,int> pii;
struct Node{
    vector<string> v;
    string name;
}a[105];
vector<string> org;
int n,m;
int judge(string t) {
    bool flag = true;
    for(int i = 0; i < t.length(); ++i) {
        if(t[i] <'0' || t[i] >'9')
            flag = false;
    }
    if(flag) return 1;
    flag = true;
    for(int i = 0; i < t.length(); ++i) {
        if(!(t[i] == '_' || t[i] == '.' || t[i] == '-' || t[i] >= 'a' && t[i] <='z' || t[i] >= 'A' && t[i] <= 'Z' || t[i] >= '0' && t[i] <= '9'))
            flag = false;
    }
    if(flag) return 2;
    flag = true;
    for(int i = 0; i < t.length(); ++i) {
        if(!(t[i] == '_' || t[i] == '.' || t[i] == '-' || t[i] >= 'a' && t[i] <='z' || t[i] >= 'A' && t[i] <= 'Z' || t[i] >= '0' && t[i] <= '9' || t[i] == '/'))
            flag = false;
    }    
    if(flag)
        return 3;
}
int main() {
    scanf("%d%d", &n, &m);
    string s1,s2;
    for(int i = 0; i < n; ++i) {
        cin >> s1 >> s2;
        int pre = 1;
        org.push_back(s1);
        for(int k = 0; k < s1.length(); ++k) {
            if(k && s1[k] =='/') {
                a[i].v.push_back(s1.substr(pre,k-pre));
                pre = k+1;
            }
        }
        if(s1[s1.length()-1] != '/') 
            a[i].v.push_back(s1.substr(pre));
        else 
            a[i].v.push_back("/");
        a[i].name = s2;
    }
    vector<string> v;
    for(int i = 0; i < m; ++i) {
        cin >> s1;

        bool fg = true;
        for(int p = 0; p < s1.length(); ++p) {
            if(!(s1[i] == '_' || s1[i] == '.' || s1[i] == '-' || s1[i] >= 'a' && s1[i] <='z' || s1[i] >= 'A'
             && s1[i] <= 'Z' || s1[i] >= '0' && s1[i] <= '9' || s1[i] == '/')) {
                fg = false;
                break;
            }
        }
        if(!fg) {
            cout <<"404" << endl;
            continue;
        }
        v.clear();
        int pre = 1;
        for(int k = 0; k < s1.length(); ++k) {
            if(k && s1[k] =='/') {
                v.push_back(s1.substr(pre,k-pre));
                pre = k+1;
            }
        }
        if(s1[s1.length()-1] != '/') 
            v.push_back(s1.substr(pre));
        else v.push_back("/");
        bool match = false;
        vector<string> ans;
        for(int j = 0; j < n; ++j) {
            int k = 0;
            ans.clear();
            if(a[j].v.size() == v.size()){
                for(; k < v.size(); ++k) {
                    if(v[k] == a[j].v[k])
                        continue;
                    if(a[j].v[k] != "<int>" && a[j].v[k] != "<path>" && a[j].v[k] != "<str>")
                        break;

                    int cat = judge(v[k]);
                    if(cat == 1 && a[j].v[k] == "<int>" || cat == 2 && a[j].v[k] == "<str>" || cat == 3 && a[j].v[k] == "<path>") {
                        int p = 0;
                        if(cat == 1) {
                            for(; p < v[k].length() && v[k][p] == '0'; ++p);
                            // cout << p << endl;
                        }
                        string tt = v[k].substr(p);
                        ans.push_back(tt);
                        continue;
                    }
                    else break;
                }


                if(k == v.size()) {
                    cout << a[j].name ;
                    for(int p = 0; p < ans.size(); ++p)
                        cout <<" "<< ans[p];
                    puts("");
                    match = true;
                    break;
                }
            }
            int pos = org[j].find("<path>");
            if(pos != -1) {
                bool f = true;
                int p = 0;
                for(; p < pos && p < s1.size(); ++p) {
                    if(org[j][p] != s1[p]) {
                        f = false;
                        break;
                    }
                }
                if(p < s1.size() && f) {
                    ans.push_back(s1.substr(p));
                    match = true;
                    cout << a[j].name;
                    for(int p = 0; p < ans.size(); ++p)
                        cout <<" "<< ans[p];
                    puts("");                            
                }
            }            
            if(match)
                break;
        }
        if(!match)
            cout <<"404" << endl;
    }
    return 0;
}
CCF-CSP考试历年真题题型分类 基础算法: 3288. 稀疏向量 (双指针) 3412. 邻域均值 (二维前缀和) 3298. 期末预测之最佳阈值 (双指针+二维前缀和) 哈希表: 3192. 出现次数最多的数 3197. 相反数 3207. 门禁系统 枚举、排序: 3292. 称检测点查询 3194. 最大的矩形 3202. 相邻数对 3209. 集合竞价 3213. 数字排序 3217. 数列分段 3227. 折点计数 3232. 最大波动 3237. 中间数 3247. 打酱油 3252. 最小差值 3263. 买菜 3283. 回 阅读详情

相关推荐

CCF资格认证题库历年真题,URL映射

CCF认证考试历年真题,URL映射,得分100。URL 映射是诸如 Django、Ruby on Rails 等网页框架 (web frameworks) 的一个重要组件。对于从浏览器发来的 HTTP 请求,URL 映射模块会解析请求中的 URL 地址,并将其分派给相应的处理代码。现在,请你来实现一个简单的 URL 映射功能。 欢迎参考,如有纰漏请多包涵。

CCF GitLink开源编程夏令营 · 学生开放报名

结识技术大咖、丰厚奖金、实习机会、官方证书……GLCC等你报名!

优快云资讯 2473

Neo4j 智能供应链应用源代码简析

本文简析Neo4j智能供应链应用的源代码,让你也可以快速开发自己的供应链应用。

Neo4j 开发者博客 1679

第十七次CCF计算机软件能力认证 第五题 城市规划(分组背包、树形dp)

转载:来源 #include<bits/stdc++.h> using namespace std; #define int long long const int N=5e4+10; int n,m,K,e[N<<1],ne[N<<1],h[N],idx,w[N<<1]; int f[N][110],ans=LLONG_MAX,sz[N],st[N]; void add(int a,int b,int c){ e[idx]=b,ne...

菱形继承 458

Dynamics 365 On-Premise Server v9.0部署体验

期盼已久的Dynamics 365 On-Premise的版本升级终于在11月初姗姗来迟。 11月2日起已经可以在官方渠道下载正式版的Dynamics 365 Server v9.0安装文件,版本号9.0.2,随手附上中文版安装文件下载地址。 想必已经有不少小伙伴开始尝试各种升级、安装了吧。 Dynamics 365 On-Premise的安装过程,度娘一下已经有很多了,这里就不赘述了,只是...

Roger的专栏 2139

保姆级教程:手把手教你从NASA Earthdata免费下载ASTER L2地表温度数据(附shp文件拖拽技巧)

本文提供了一份详细的ASTER L2地表温度数据下载指南,涵盖从NASA Earthdata注册、数据定位到shp文件拖拽技巧的全流程。特别针对新手常见问题如邮箱选择、密码设置、云量筛选等给出实用解决方案,帮助用户高效获取遥感数据并避免常见陷阱。

weixin_42662605的博客 424

第十次CCF计算机软件能力认证 第三题 Markdown(大模拟、字符串)

题目链接 一道很有区分度的模拟题,我做了1.5h~ 本质上如果不算强调和链接的影响 我们是不难做出前三种情况的 但是 随着对这道题目的深入 我发现做出这道题目主要有两个难点: 1.要考虑到输入状态的转移,比如输入段落切换到输入表格、输入表格切换到输入段落 2.虽然强调不存在嵌套 但链接和强调都存在嵌套 我们可以强调处理完再处理链接,这两种先后顺序处理是不影响的(可以观察替换格式易得) #include<bits/stdc++.h> using namespace std; str.

菱形继承 2687

潜行游戏设计:核心机制与关卡设计解析

潜行游戏作为动作游戏的重要分支,通过视觉遮蔽、声音传播和AI行为树等复杂系统,为玩家提供独特的策略体验。视觉隐蔽系统采用视野锥和光照值的双重判定,声学传播模型模拟距离衰减和材质穿透,而敌人AI行为树则包含巡逻、警戒和团队协作等状态节点。这些技术不仅提升了游戏的真实感和挑战性,还在《合金装备》《刺客信条》等经典作品中得到广泛应用。潜行游戏的关卡设计强调多路径拓扑结构和环境叙事元素,通过沙漏模型和动态难度调节,平衡自由度和开发成本。未来,基于ML的适应性AI和物理模拟的隐蔽系统将成为创新方向。

weixin_42497762的博客 179

CCF-CSP 202309-3 梯度求解 大模拟 100分

有了上面的基础,多项式可以以下面的方式进行存储,vector中每一项都是一个乘积项,且默认这些乘积项都由加号连接,那么遇到减号该如何处理呢?选择合适的数据结构是解决大模拟问题的关键,一旦选定了合适的数据结构,题目也就迎刃而解了,通常使用的数据结构有栈(STL模板库),map,vector,结构体及其复杂嵌套结构,具体应该如何嵌套,具体情况具体分析。到此为止,最关键的数据结构模型已经建立好了,随后的多项式加法,减法,乘法,乃至求偏导,都是非常基础的模拟过程,具体请详见下方完整代码。

qq_62571980的博客 5240

AI Agent Harness实时监控大屏搭建实战

本文将以目前主流的AI Agent管控框架Harness为基础,结合React、ECharts、WebSocket技术,手把手带你搭建一套完整的实时监控大屏,覆盖全局概览、状态分布、工具调用统计、异常告警、实时日志等核心功能,不需要复杂的底层开发,复制代码就能快速跑通。本文我们从需求出发,先梳理了AI Agent的核心监控指标,然后搭建了监控大屏的静态布局,逐个实现了各个图表,对接了Harness的实时数据源,最后加了交互和告警功能,完整走了一遍监控大屏从设计到落地的全流程。

大数据洞察的博客 174

第154章 点云大规模并行处理(GPU加速)

优化点云处理✨ 使用。

yumeiguo的博客 374

一起备战蓝桥杯与CCF-CSP之大模拟路径解析

一起备战蓝桥杯与CCF-CSP(2)

chandfy的博客 1237

OpenClaw插件配置错误修复完全指南

插件文件名是插件目录结构正确package.json配置正确OpenClaw的插件系统还在快速迭代,偶尔会遇到这种配置问题。看错误信息检查配置文件检查实际文件对比差异修复问题大部分问题都能解决。查看官方文档:https://openclaw.ai/docs提Issue:https://github.com/openclaw/openclaw/issues加入Discord社区求助快速修复命令汇总。

Maynor的博客 4092

CCF201803-3 URL映射(大模拟)

传送门:CCF201803-3 URL映射 做的第一道大模拟,代码一小时,debug四小时,很难受。 总的来说不是一道很麻烦的题,但有一些坑需要说明: 除了最后一个参数为&lt;path&gt;时,规则末尾有无‘/’是不同的; 有可能出现空规则,即单独一个‘/’; 若一个url满足多个规则,按照输入时的顺序输出第一个; &lt;int&gt;类型参数需要抹去前导零。 最自闭的一个坑,花...

坤斤拷的博客 620

[QMT和ptrade量化交易小白入门]-109、小市值选股的基础上用六脉神剑评分,回测年化可到132%

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1861

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

CCF-CSP 201803-3 URL映射题解 大模拟

题目链接 #include<iostream> using namespace std; #include<vector> #include<string> #define N 105 int n,m; struct Rules{ //存入规则 string path; string name; }rr[N]; string get_del(string xx) //如果不是整数,返回空串,否则返回去除前导0的整数 { for

weixin_45448563的博客 272

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

CCF认证历年真题 满分代码(更新至2018年12月)

目标是集齐所有CCF认证试题的满分代码! 每次考试出题一般规律: 第一题:水题(稍微有些编程经验就可以写) 第二题:小模拟(处理比较简单的问题,掌握C++STL很有帮助) 第三题:大模拟(处理复杂的问题,一般涉及文本处理,需要熟练掌握C++STL并且细心) 第四题:算法题(难度一般,重点考图论算法和动态规划) 第五题:算法题(难度很高,涉及算法面很多,而且数据量很大,需要对算法极致优化...

wl16wzl的博客 10万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

CCF CSP认证历年真题 满分代码(持续更新中)

CCF CSP认证 历年真题满分代码

weixin_54648192的博客 400

201803-3CCFURL映射

   解题思路   大模拟,基本思路是用字符串数组储存URL映射的规则,输入待处理的地址时按顺序一一匹配储存的规则,如果匹配则输出,到最后匹配的规则时输出404。此解在规则的匹配时采用的是分块匹配的方法,将待处理的地址的/ /分成若干块,再和规则对应位置的规则进行相应匹配,直到判断到最后一块。本题可能会出错的地方是对题意的理解不清晰,如&lt;int&gt;前后的斜杠问题,最后贴上代码...

Miracle_cx的博客 323

CCF-CSP认证考试准备第十七天

5.像这种去匹配n个规则的某一个的,函数传入参数为一个规则,遍历在main函数里面写,**这题的结果string result是作为引用参数传入函数来改变的,而不是作为函数的返回结果**,因为match函数最终是起到bool判断效果判断输出结果,但在判断中途就可以改变result,所以选择为引用参数传入函数。1.规则的相邻两项之间用‘/’分开,所以我们先把所有项分开:(**重点学习**)分离字符串这里用**字符串流处理,先把所有的‘/’变为空格,然后一个一个把各项分开。// 规则是否以 '/' 结尾。

2301_80044595的博客 972

CCF CSP 历年题解(C/C++)【截至2019年】

本人水平有限 目前只能做前两题 后面的随机可能会有 就脸厚的先写一个吧 (捂脸) 第一题 一般都是小模拟题 细心一点 注意一下格式之类的很容易就出来的 第二题 就是一道大模拟题 耐心一点 适当懂stl容器会很有帮助 第三题 字符串处理 我的弱项 主要是题目太长 越看越慌 (汗) 第四题 一般涉及图论 也都可能是dp 反正就是一些比较难一点的算法 第五题 emmmm 我就看...

qq_28640193的博客 3450

CCF URL映射(201803-3)(字符串 匹配)

题的链接:CCF URL映射(201803-3) 题解: 一个个去寻找有没有可以匹配的,match函数包含的第三个参数flag用来标记是否匹配成功,在该函数中所有的输出之前都会对flag进行判断,只有flag为true时才会进行输出操作,main函数的for循环中若匹配成功则二次调用match函数进行输出操作,匹配成功一次则终止循环,进行下一组字符串的匹配操作; match函数的匹配过程就是一个...

小牛的博客 279

CCF URL映射

问题描述  URL 映射是诸如 Django、Ruby on Rails 等网页框架 (web frameworks) 的一个重要组件。对于从浏览器发来的 HTTP 请求,URL 映射模块会解析请求中的 URL 地址,并将其分派给相应的处理代码。现在,请你来实现一个简单的 URL 映射功能。  本题中 URL 映射功能的配置由若干条 URL 映射规则组成。当一个请求到达时,URL 映射功能会将请求...

qq_38089964的博客 664

ccf url映射

交了整整20遍终于过了,题目意思不清楚真的非常坑 题目思路: 1.先记录下规则末尾是不是'/',然后把'/‘变成 '  ’用stringstream读入 2.如果规则中没有&lt;path&gt;,可以先判断规则和url地址的字符串数是不是相等,正常匹配,一旦不符合flag = 0,然后最坑的是再判断一下规则和url后面是不是都有'/‘或都没有,必须相同才能匹配,这个没有就60分了,实在没看...

okjer0的博客 1061

第十三次CCF CSP认证(2018年3月)真题URL映射

问题描述   URL 映射是诸如 Django、Ruby on Rails 等网页框架 (web frameworks) 的一个重要组件。对于从浏览器发来的 HTTP 请求,URL 映射模块会解析请求中的 URL 地址,并将其分派给相应的处理代码。现在,请你来实现一个简单的 URL 映射功能。   本题中 URL 映射功能的配置由若干条 URL 映射规则组成。当一个请求到达时,URL 映射功能...

徐奕的专栏 4227

CCF CSP URL映射

#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;stdlib.h&gt; #include &lt;cstdio&gt; #include &lt;map&gt; #include &lt;vector&gt; using namespace std; map&lt;string, string&gt; dict; ve

chaomaer的博客 1436
上一篇: CCF 地铁修建(起点到终点的路径中最大边最小)
下一篇: CCF 行车路线(多维最短路,两种类型的道路)
Link_Ray
博客等级 码龄9年 44粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值