sbw Blog - C++
  • 来源: sbw Blog | 浏览: 2447 | 评论: 0 | 时间: 2020-02-23
    做了道蓝桥杯算法题:赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。atm想计算一下有多少种不同的可能的垒骰子方式。两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。 由于方案数可能过多,请输出模 10^9 + 7 的结果。
  • 来源: sbw Blog | 浏览: 1571 | 评论: 2 | 时间: 2019-08-09
    “Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.”——这是 LeetCode 上的一道 Hard 级别的题,是说将多个已经排序的有序序列合并成一个大的有序序列。使用优先队列的方式完成了这个题目,时间应该是 O(nm)。
  • 来源: 石博文博客 | 浏览: 1910 | 评论: 0 | 时间: 2019-03-24
    POJ 1007 这个题是一个难度一般的算法题,核心是要计算每一个字符串的权值然后累加并排序。在本题中,这个权值是指为字符串中的每一个字母计算它后面有多个个字母比它小,即发生了多个次“反转”。从这个描述的一般认识来看,这是个 N^2 复杂度的模拟问题,核心在于算法优化及找模型。但由于题目的测试数据比较简单,使用 N^2 复杂度的简单方法也可以很容易通过。这就导致了这个题目的实际比赛难度其实很低。这里从解题思路及推导过程给大家做一个线性复杂度,O(N) 解题方法的分享。
  • 来源: 石博文博客 | 浏览: 4793 | 评论: 4 | 时间: 2017-01-24
    在 Leetcode 上看到一个题(原题地址),最长无重复子串。当时看的第一眼觉得或许可以用动态规划,今天空闲时间实现了一下。
  • 来源: 石博文博客 | 浏览: 4967 | 评论: 8 | 时间: 2016-05-28
    一系列平方数组成的排列,所有的数恰好将0~9使用了一遍,比如 0,1, 4, 9, 872356,或者4, 9, 361, 87025,或者 1436789025。它们分别是一系列平方数组成的排列,而且这个排列恰好把数字 0~9 使用了一遍,现在要编程求出所有的平方数数列。
  • 来源: 石博文博客 | 浏览: 6896 | 评论: 0 | 时间: 2016-01-11
    QComboBox 的弹出列表如果非常长的话,会在上下两端加一个箭头来表示还有内容,但是因为没有对应的 ObjectName 这两个箭头的风格很不好调整,需要根据它的 ClassName 获取到对象之后,采用事件监听的方式捕获它的绘图方法。以 QComboBox 为例,可以采用这种方式去画Qt控件中所有的子面板,子对象,方便个性化修改样式。
  • 来源: 石博文博客 | 浏览: 7217 | 评论: 2 | 时间: 2015-12-01
    准确的说,是“最后一个可视的主窗口被关闭时,UI线程将结束”。今天在调试一个程序的时候,程序会弹出一个 QFileDialog 供用户选择文件,但是发现当这个 Dialog 执行返回之后,整个程序都退出了,查阅了资料后发现,是 Qt 特意设置的。
  • 来源: 石博文博客 | 浏览: 6018 | 评论: 0 | 时间: 2015-01-19
    编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。
    输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。
    输出格式:输出经过转换后的字符串。
  • 来源: 石博文博客 | 浏览: 9835 | 评论: 0 | 时间: 2014-07-23
    Qt中的QDrag类提供了MIME数据支持的拖放事件,使用拖放事件,用户可以更直观的移动和改变想在应用程序中使用的数据。无论是在桌面环境下还是平板电脑或其它设备中,使用拖放都可以使程序更加的方便和人性化。为了保证使用的数据可以在事件完成后被清理,QDrag事件需要实现在以QWidget为父类的元素上。本文以一个Demo实现了最常用的文件/文本拖放到应用程序的示例。
  • 来源: 石博文博客 | 浏览: 3835 | 评论: 0 | 时间: 2014-03-22
    一根面条,从中间切一刀,可以得到2根,若先对折一下再切,可以得到3根,若对折2次再切,可以得到5根面条,现在问若对折10次后再切,可以得到几根面条?
  • 来源: 石博文博客 | 浏览: 4115 | 评论: 4 | 时间: 2014-03-22
    长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。
  • 来源: 石博文博客 | 浏览: 4025 | 评论: 0 | 时间: 2014-03-22
    A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。 请填写出所有符合要求的排列中,字典序最小的那个。 例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。
  • 来源: 石博文博客 | 浏览: 3391 | 评论: 0 | 时间: 2014-03-22
    如果要在n个数据中挑选出第一大和第二大的数据(要求输出数据所在位置和值),使用什么方法比较的次数最少?我们可以从体育锦标赛中受到启发。8个选手的锦标赛,先两两捉对比拼,淘汰一半。优胜者再两两比拼...直到决出第一名。