第40次CCFCSP认证邮寄

省流:100+100+75+30+0=305,rk:2.72%


Day -?

竞赛空窗期,无聊打算去认证一下(虽然不考研,这个用处似乎为 \(0\)


Day-7

认识的零基础同学说想来打一下,做了真题,似乎有 \([100,200]\) 的水平,祝福.


Day 1

中午起晚了,赶紧去食堂吃个饭,买了份烧鸭饭(\(15\)),报吃.
去到学院,幸好没迟到,赶紧签到一下就等开始了.
队友坐左边,同学做后面吗?有点意思

先把全部开出来,T1,T2 都是很简单的位运算送分;T3 大模拟难度居然降低了这么多(物理上),以前都是三四页的,这次居然这么短;T4 看起来是很难做的数学题;T5 没思路.

\(15\)min 快速过掉前两题,思考了一下,先写 T3,结果旋转的坐标对应算了半天算不出来,受不了了,决定做 T4,手玩了一下性质,发现性质很不显然,决定快速打暴力,打出 \(30\)pts 后重回 T3. 这时怎么同学走了?好奇怪.(伏笔)
调了 \(1\)h,终于发现原来小旋转没写错,反而是整体旋转居然写错了(好糖),改一下直接交,怎么 \(75\)pts?模拟题怎么还能 T 的?不理解了,改了几次都是 T,决定放弃去争一下 T5.

一开始想的是一个很简单的贪心,貌似会有 \([10,20]\) pts,打完了交一下,怎么是 \(0\)???贪心也假了吗?思考一下,想到了一个很奇怪的 Hack,发现似乎应该改成类似 01-Trie 的结构,但是就剩 \(10\)min 了,算了,撤退了.


Day ?

出分了,问题不大(话说 IOI 赛制我还需要你出分吗?),怎么同学不会位运算直接保龄了啊?怎么队友 T3 能打出来 \(80\)pts 啊?算了算了,这个分够用就行了.

看了一下题解,T4 是个数论函数,让我想起了高中研究莫反的时光,但是我现在是大学生了,已经全部忘掉了捏.
T5 好逆天,做不出来是应该的了.我连线段树合并都不会,我还做 01-Trie 合并吗?
但是听说有人随机化跑二分图都有 \(35\)pts,尽力了.

先展示下效果 https://pan.quark.cn/s/a4b39357ea24 遗传算法 - 简书 遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。 进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解 遗传算法流程 遗传算法的一般步骤 my_fitness函数 评估每条染色体所对应个体的适应度 升序排列适应度评估值,选出 前 parent_number 个 个体作为 待选 parent 种群(适应度函数的值越小越好) 从 待选 parent 种群 中随机选择 2 个个体作为父方和母方。 抽取父母双方的染色体,进行交叉,产生 2 个子代。 (交叉概率) 对子代(parent + 生成的 child)的染色体进行变异。 (变异概率) 重复3,4,5步骤,直到新种群(parentnumber + childnumber)的产生。 循环以上步骤直至找到满意的解。 名词解释 交叉概率:两个个体进行交配的概率。 例如,交配概率为0.8,则80%的“夫妻”会生育后代。 变异概率:所有的基因中发生变异的占总体的比例。 GA函数 适应度函数 适应度函数由解决的问题决定。 举一个平方和的例子。 简单的平方和问题 求函数的最小值,其中每个变量的取值区间都是 [-1, ...
第36CCF CSP认证包含不同题目,以下是部分题目的相关信息: ### 第一题——移动 该题难度简单,有多种题解实现方式。其核心思路是遍历移动指令,根据指令字符 `f`、`b`、`l`、`r` 计算目标位置,并且只有在坐标处于规定范围内时,才更新坐标。 题解代码示例如下: ```cpp #include <iostream> using namespace std; int main() { int size, count; cin >> size >> count; for(int i = 0; i < count; i++) { int x, y; cin >> x >> y; string keys; cin >> keys; for(char key : keys) { switch (key) { case 'f': { if(y + 1 <= size) { y += 1; } break; } case 'r': { if(x + 1 <= size){ x += 1; } break; } case 'b': { if( y - 1 > 0){ y -= 1; } break; } case 'l': { if(x - 1 > 0) { x -=1; } break; } } } cout << x << " " << y; cout << endl; } } ``` 另一种题解代码如下: ```cpp #include <bits/stdc++.h> using namespace std; int main() { int n,k; cin>>n>>k; while(k--){ int x, y; string s; cin>>x>>y; cin>>s; for(int i=0;i<s.size();i++){ if(s[i] == 'f' && y < n){ y+=1; } else if(s[i] == 'b' && y > 1){ y-=1; } else if(s[i] == 'l' && x > 1){ x-=1; } else if(s[i] == 'r' && x < n){ x+=1; } } cout<<x<<" "<<y<<endl; } return 0; } ``` 还有一种题解代码: ```cpp #include <iostream> #include <string> using namespace std; int main() { int n, k; cin >> n >> k; while (k--) { int prex, prey; string str; cin >> prex >> prey >> str; for (int i = 0; i < str.length(); ++i) { int x = prex, y = prey; if (str[i] == 'f') y++; else if (str[i] == 'b')y--; else if (str[i] == 'l')x--; else x++; if (x >= 1 && x <= n && y >= 1 && y <= n) { prex = x; prey = y; } } cout << prex << " " << prey << endl; } return 0; } ``` ### 第四题——跳房子 该题巧妙利用BFS(广度优先搜索)算法。整个循环在确保遍历所有可能的跳跃选择的同时,也利用遍历顺序的优化提前发现最优路径,从而实现了查找最优解的目的。 题解代码如下: ```cpp #include <iostream> #include <vector> #include <queue> using namespace std; int main () { int n; scanf("%d", &n); vector<int> a(n + 1), k(n + 1); for(int i = 1; i <= n; i++) cin >> a[i]; for(int i = 1; i <= n; i++) cin >> k[i]; vector<int> steps(n + 1, -1); queue<int> q; q.push(1); steps[1] = 0; while(!q.empty()) { int pos = q.front(); q.pop(); if(pos == n) break; int l = pos + 1; int r = min(pos + k[pos], n); if(r == n) { steps[n] = steps[pos] + 1; break; } for(int j = r; j >= l; j--) { int next = j - a[j]; if(steps[next] == -1) { steps[next] = steps[pos] + 1; q.push(next); } } } printf("%d\n", steps[n]); return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值