0%

vscode下编写c程序

下载gcc编译器

使用的是直接解压使用版本的,放在u盘里面了。添加bin目录到path环境变量下(用户变量下即可)

在cmd里面输入gcc -v能看到版本号就表示安装成功了

安装扩展插件

在vscode里面装两个插件:c/c++和Code Runner

配置选项

在文件-首选项-扩展里将“Run Code Configuration”中的“Run In Terminal”、”Save File Before Run”前面的复选框选中

运行调试的设置

首先,在”Terminal“菜单下点击”Configure Tasks…”子菜单。

在随后出现的弹出框中选择“C/C++:gcc.exe生成活动文件”

提示:没有这个选项框关闭vscode后重启

随后,在“CEXAMPLES”文件夹中会自动生成一个“.vscode”的子文件夹,在这个子文件夹下自动创建一个”tasks.json“的文件。不用做任何改动。

最后,回到“hello.c”文件,单击鼠标右键选择“Run Code”即可运行代码。

运行结果会在下面出现的“Terminal”中显示

如果想要调试代码的话呢?点击“Run”菜单下的“Start Debugging”子菜单

在随后出现的弹出框中选择“C++(GDB/LLDB)”,再选择”gcc.exe“。

提示:shift f5关闭调试功能

至此,c环境的安装就结束了,终于摆脱上古c环境vc6.0这种了!

题目描述:
给你一个整数 n,请返回长度为 n 、仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量。
字符串 s 按 字典序排列 需要满足:对于所有有效的 i,s[i] 在字母表中的位置总是与 s[i+1] 相同或在 s[i+1] 之前。
示例


#数学解法:可以把问题转换成将 n 个小球放到 5 个盒子里,盒子可以为空。

我们可以想象成把 n 个字符分配给五个元音所代表的盒子中。一旦每个盒子中的字符个数定了,那么这个字符串也固定下来了。因为题目要求必须是字典序,所以一定 a 字符在最前;其次是 e 字符;其次是 i 字符;其次是 o 字符;其次是 u 字符。

下面问题的关键就是,n 个小球放到 5 个盒子里,盒子可以为空,一共有多少种方法?

这是经典的中学数学问题。更一般的,我们来探讨,将 n 个小球放到 m 个盒子里,有多少种方法?

首先,我们考虑问题的简单版本,即盒子不能为空的情况。

此时,我们只需要在 n 个小球排成一排,中间放 m - 1 个隔板,放好以后,相当于把 n 个小球分成了 m 份。每一份对应一个盒子里的小球数量。

因为盒子不能为空,所以两个小球之间不可能放多个隔板,左右两端也不可能放隔板。因此,放隔板的位置有 n - 1 个,我们要放 m - 1 个隔板。答案为 C(n - 1, m - 1)。

有了这个结论,再来讨论问题的复杂版本,就简单了,即盒子可以为空的情况。

此时,我们只需要先拿 m 个新的小球,在 m 个盒子里,每个盒子中扔进去一个小球。之后,再分配原来的这 n 个小球,得到的分配结果,肯定 m 个盒子里都不为空。但此时,我们使用了 n + m 个小球。

换句话说,把 n 个小球放到 m 个盒子里,盒子可以为空,等价于:把 n + m 个小球放到 m 个盒子里,盒子不能为空。

大家也可以想成是:我们先把 n + m 个小球放到 m 个盒子里,盒子不能为空,然后再在每个盒子里拿走 1 个小球,总共拿走了 m 个小球,得到的结果,就是把 n 个小球放到 m 个盒子里,盒子可以为空的解。

把 n + m 个小球放到 m 个盒子里,盒子不能为空的分法,带入上面的公式,就是 C(n + m - 1, m - 1)

所以,把 n 个小球放到 m 个盒子里,盒子可以为空,答案为 C(n + m - 1, m - 1)。

总结:

将 n 个小球放到 m 个盒子里,盒子不为空:C(n - 1, m - 1);

将 n 个小球放到 m 个盒子里,盒子可以空:C(n + m - 1, m - 1);

对于这个问题,m = 5,盒子可以为空,所以答案是 C(n + 5 - 1, 5 - 1) = C(n + 4, 4)


##也可以动态规划求解

字母表示结尾
#还可以从头开始动态规划,但是会重复计算

a fast and accurate one-stage approach to visual grounding

阅读全文 »

一.编辑/themes/next/layout/_partials/head.swig在如下位置添加代码

1
2
3
4
5
6
7
8
9
10
<script>
(function(){
if('{{ page.password }}'){
if (prompt('请输入密码') !== '{{ page.password }}'){
alert('密码错误');
history.back();
}
}
})();
</script>

之后,在你想要加密的文章的头文件里添加上password: xxxxxx 即可。

二.也是我自己采用的加密方法:装插件

1.npm install –save hexo-blog-encrypt

2.要为一篇文章添加密码查看功能,只需要在文章信息头部添加 password 字段即可:

1
2
3
4
5
---
title: Hello World
date: 2021-04-13 21:18:02
password: hello
---

3.在Hexo主配置文件 _config.yml 中添加如下配置:

1
2
3
4
5
6
7
8
9
# Security
encrypt: # hexo-blog-encrypt
silent: true
abstract: 这是一篇加密文章,需要密码才能继续阅读。
message: 当前文章暂不对外可见,请输入密码后查看!
tags:
- {name: private, password: hello}
wrong_pass_message: 抱歉,您输入的密码错误,请检查后重新输入。
wrong_hash_message: 抱歉, 当前文章不能被校验, 不过您还是可以看看解密后的内容。

就可以按照标签类加密

进阶教程:https://www.itfanr.cc/2021/04/16/hexo-blog-article-encryption/