小编Jas*_*per的帖子

用相对数字跳转到vim中的行

在正常情况下,可以查看行号并使用[number] G转到该行.但我喜欢使用设置relativenumber.缺点是我不能通过查看显示的行号跳转到行.

是否有可能重新定义[数字] G的行为来解决这个问题?此外,是否可以使用relativenumber来使当前行号为1而不是0?如何?

ide vim

16
推荐指数
1
解决办法
2315
查看次数

用于编程练习的回溯解决方案(拟合管道)

我正在审查本地编程竞赛中的编程问题.

你可以在这里下载问题(pdf).这是荷兰语,但图片将有助于理解它.

您收到am*m grid作为输入,包含一些管道和一些缺失点(问号).其余的管道必须放在网格中,以便它们与其他管道连接.

每个管道都用一个字母表示(见第2页的图片).字母'A'的值为1,'B'的值为2,..

我尝试用回溯解决它(它还没有完成工作).但由于网格可能是10x10,因此速度太慢.有人可以提出更好(更快)的解决方案/方法吗?

#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;

#define sz(a) int((a).size())
#define pb push_back

int m, found;
string letters;
vector<int> done;
vector<string> a;

int ok(char letter, int c, int r)
{
    int val = letter - 'A' + 1;

    //checking if no side goes outside
    if (r == 0 && (val & 1))
        return 0;
    if (r == m - 1 && (val & 4))
        return 0;
    if (c == 0 …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm recursion backtracking

12
推荐指数
1
解决办法
1910
查看次数

从匹配棒中制作数字的算法

我制作了一个程序来解决ACM中的这个问题.

火柴棍是表示数字的理想工具.使用火柴棍表示十位小数的常用方法如下:

这与普通闹钟上的数字显示方式相同.使用给定数量的火柴棍,您可以生成多种数字.我们想知道使用所有火柴棍可以创建的最小和最大数字是多少.

输入

在第一行上有一个正数:测试用例的数量,最多为100.在每个测试用例之后:

一行整数n(2≤n≤100):你有的火柴数.产量

每个测试用例:

可以创建的最小和最大数字的一行,由单个空格分隔.两个数字都应该是正数并且不包含前导零.样本输入

4 3 6 7 15样品输出

7 7 6 111 8 711 108 7111111

问题是,要解决100个火柴棍问题太慢了.搜索树太大而无法强制执行.

以下是前10个的结果:

2:1 1

3:7 7

4:4 11

5:2 71

6:6 111

7:8 711

8:10 1111

9:18 7111

10:22 11111

最大值的模式很容易,但我没有看到最小值的快捷方式.有人可以建议一个更好的方法来解决这个问题吗?这是我使用的代码:

    #include <iostream>
    #include <string>
    using namespace std;

    #define MAX 20 //should be 100

    //match[i] contains number of matches needed to form i
    int match[] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};
    string …
Run Code Online (Sandbox Code Playgroud)

c++ puzzle algorithm recursion

7
推荐指数
1
解决办法
3448
查看次数

与Arduino的串行通信仅在屏幕运行时有效

我在Linux上,出于某种原因,我只能在屏幕监控时使用串口.当屏幕未运行时,Python代码不会崩溃或出现问题.Arduino只是没有回应.有什么我想念的吗?

pi@raspberrypi ~ $ screen "/dev/ttyACM0" 115200

pi@raspberrypi ~ $ sudo python
>>> import serial
>>> s = serial.Serial("/dev/ttyACM0", 115200)
>>> s.write("EXP\n")
4
Run Code Online (Sandbox Code Playgroud)

python linux serial-port arduino

6
推荐指数
1
解决办法
415
查看次数

条件运算符的奇怪用法(>?=)

我在看一些代码并看到这样的东西:

int d = 1;
int somethingbigger = 2;

d >?= somethingbigger;

cout << d << endl;
Run Code Online (Sandbox Code Playgroud)

我认为这应该输出2.但我甚至无法用gcc 4.5.2编译它.该代码是在2005年编写的,并使用gcc 3.4.4编译(不是100%肯定).

有人可以解释这是如何工作的,以及为什么我不能用最近的编译器编译它.

c++ compiler-construction conditional

4
推荐指数
2
解决办法
542
查看次数