1 Yuhan の Blog

尚未进行身份认证

我要认证

Spring Song

等级
TA的排名 1w+

C语言实现ELF文件解析

这学期Linux的大作业第一部分是解析64位/32位的ELF文件,这里偷了个懒只解析了ELF头、程序头表和节头表;这里先附上代码占个坑,有时间会来补详细解释;输入格式为ELF文件名;程序会同时将三个解析结果打印到控制台并写入同级目录下的result.txt文件中;#include <stdio.h>#include <stdlib.h>#include <elf.h>#include <string.h>#define putline pu

2020-06-29 15:06:31

基于算符优先分析法的语法分析器(编译原理之自底向上分析技术)

先用代码占个坑,等期末结束了再补详细解释。。。/* 2020-06-20 by 软件工程172 202171139 TDM-GCC 4.9.2 64-bit -std=C++11 */#include <bits/stdc++.h>#define pcc pair<char, char>#define fi first#define sc second#define mp(a, b) make_pair(a, b)using namespace std;

2020-06-26 01:45:02

如何优雅地在Word中粘贴代码

大家日常在用word写实验or大作业报告时都有需要在word中附上代码的时候~直接从编辑器中ctrl+c过来的代码往往显得不太美观,笔者有一个小技巧可以使得代码看上去更加美观一些,在这里分享出来希望可以帮助到大家~step1打开网站http://www.planetb.ca/syntax-highlight-word在Code框贴进自己需要写进word的代码,而后在Language下拉选择框选择自己代码的语言,再点击Show Highlighted按钮,可以得到如下图的页面:Microso

2020-06-24 22:41:51

Codeforces 1355D Game With Array

题目链接:https://codeforces.com/contest/1355/problem/D思路:结论:S<2NS<2NS<2N时Petya会输,否则会赢;证明:1.当S≥2NS\geq2NS≥2N时,我们选择(1,1,...,1,S−N+1)(1,1,...,1,S-N+1)(1,1,...,1,S−N+1)这个序列(一共有N−1N-1N−1个111),且令K=NK=NK=N;我们需要证明任意子连续的子序列和不等于NNN和S−NS-NS−N;(1)如果子序列不

2020-05-24 15:04:52

Codeforces 1353D Constructing the Array

题目链接:https://codeforces.com/contest/1353/problem/D思路:我们将所有待处理的子线段按照{长度,左端点序号,右端点序号}按序存储在优先队列中,然后挨个处理即可;代码:#include<bits/stdc++.h>using namespace std;struct seg { int len, l, r; bool operator < (const seg & s) const { return le

2020-05-16 13:17:50

蓝桥杯 第十一届软件类第二次校内模拟赛——C/C++程序设计

第一题思路:简单排列组合问题;答案7!2!\frac{7!}{2!}2!7!​第二题思路:dfs搜一下就行了代码:#include<bits/stdc++.h>#define crr(x) cerr << "#x:" << ' ' << x << '\n';using namespace std;int ...

2020-04-16 20:34:30

蓝桥杯 PREV-28 地宫取宝(dp)

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T120思路:1.记dp[i][j][a][b]dp[i][j][a][b]dp[i][j][a][b]为走到坐标为(i,j)(i,j)(i,j)位置后,手上有aaa件物品且所有物品中最大值为bbb的方案数;2.假设我们现在从(a,b)(a,b)(a,b)走到(x,y)(x,y)(x,y)(这两个...

2020-03-31 13:21:23

蓝桥杯 PREV-43 拉马车(stl的使用)

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T447思路:1.我们可以发现出牌者的牌是遵循队列规则、而桌上的牌是遵循栈规则的;2.用map容器维护一下桌上是否有某张牌,剩下的模拟即可;代码:#include<bits/stdc++.h>using namespace std;queue<char> qu...

2020-03-28 21:08:00

蓝桥杯 第十一届软件类校内模拟赛——C/C++程序设计

第一题思路:这题是求约数个数,数据不大可以暴力,复杂度O(n)O(n)O(n);但求约数有O(n)O(\sqrt{n})O(n​)的算法,见如下代码:代码:#include<bits/stdc++.h>using namespace std;int divisor(int n) { int rs = 0; for(int i = 1; i * i <= ...

2020-03-21 18:50:07

蓝桥杯 PREV-19 九宫重排(bfs)

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T42思路:既然是求最少次数,那就用bfs搜索;每次寻找下一种可能的状态,用map容器记录即可;代码:#pragma GCC optimize(2)#include<bits/stdc++.h>using namespace std;bool tag[10][10];...

2020-03-20 17:20:16

蓝桥杯 PREV-17 约数倍数选卡片(对抗搜索)

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T40思路:1.这是博弈问题的一般方法,用dfs进行对抗搜索,遍历所有可能,双方在每一步都选取最优步骤;2.单纯dfs会超时,我们知道约大的数,它的约数+倍数个数就相对可能越少,因此我们优先遍历大数即可;代码:#include<bits/stdc++.h>using name...

2020-03-16 15:44:09

蓝桥杯 PREV-14 高僧斗法(Nim游戏)

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T37思路:1.假设从111开始给这nnn个小和尚从左往右编号,那么编号为1,2,3,...,n1,2,3,...,n1,2,3,...,n;2.我们按照一奇一偶的方式给他们组队,结果为(1,2),(3,4),...,(n−1,n)(1,2),(3,4),...,(n-1,n)(1,2),(3,4...

2020-03-10 18:26:51

HDU 1850 Being a Good Boy in Spring Festival(Nim游戏)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1850思路:1.Nim游戏的N-position(即先手必胜态)为nnn堆石子的异或和不为0;2.反之必败态为nnn堆石子的异或和为0,那么就需要给对手创造必败态;3.遍历每一堆扑克牌,假设当前堆扑克牌数量为aaa,算出其它n−1n-1n−1堆扑克牌数量的异或和为bbb,我们需要做的即让...

2020-03-10 17:17:30

蓝桥杯 PREV-13 网络寻路(dfs)

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T36思路:每一个点都可以作为起点,用dfs遍历路径条数;代码:#include<bits/stdc++.h>using namespace std;int n, m, s;long long ans;vector<int> G[10005];bool v...

2020-03-09 14:12:11

团体程序设计天梯赛 L3-021 神坛(极角排序)

题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805046577840128思路:1.一共n个点,对于每一个点我们都可以将它作为顶点,那么此点和其它n-1个点就会组成n-1个向量;2.n-1个向量中,我们任意选取两个向量都可以满足“选取三块石头”这个条件,但是我们现在的目标是面积最小,因此我们需要...

2020-03-08 15:42:27

洛谷 P1372 又是毕业季I(公约数)

题目链接:https://www.luogu.com.cn/problem/P1372思路:假设默契值为xxx,那么根据贪心的想法,这kkk个人的序号为:x,2x,3x,...,kxx,2x,3x,...,kxx,2x,3x,...,kx;根据题意我们知道kx≤nkx\leq nkx≤n,即x≤nkx\leq \frac{n}{k}x≤kn​;代码:#include<bi...

2020-03-07 16:48:46

洛谷 P1865 A % B Problem(埃氏筛法)

题目链接:https://www.luogu.com.cn/problem/P1865思路:用埃氏筛法将[1,m][1,m][1,m]间的素数全部筛选出来,再用前缀和数组维护一下即可;代码:#include<bits/stdc++.h>using namespace std;const int maxn = 1e6 + 5;bool prime[maxn];...

2020-03-07 16:17:51

洛谷 P1060 开心的金明(0/1背包)

题目链接:https://www.luogu.com.cn/problem/P1060思路:背包裸题代码:#include<bits/stdc++.h>using namespace std;const int maxn = 3e4 + 5;int n, m, v[maxn], p[maxn];int dp[maxn];int main() {#if...

2020-03-05 14:44:36

2020牛客寒假算法基础集训营2

题目链接:https://ac.nowcoder.com/acm/contest/3003A题思路:求出三种情况的最多获胜局数即可代码:#include<bits/stdc++.h>using namespace std;int main() {#ifdef MyTest freopen("Sakura.txt", "r", stdin);#else...

2020-03-03 16:43:47

蓝桥杯 BEGIN-4 Fibonacci数列

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T4思路:接近蓝桥杯比赛了…最近有一些同学过来问我为什么java代码提交蓝桥的OJ报运行错误,而且都是拿这题来问的…所以写这篇就是想提醒一下初次使用OJ的java选手吧(虽然我是用C++的QAQ)1.在提交代码时不能加入package语句;2.类名的定义必须是public class Main...

2020-03-02 14:53:41

查看更多

勋章 我的勋章
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。