自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 Sicily 14517. Eco-driving

Sicily 14517. Eco-driving题目思路直接看了题解- -; 在0到π之间二分,如果中间值可行,缩小右边界(让最大角尽可能小); 如果不可行,增大左边界(最大角已经不能再小); 重复40次的答案基本和标达无差了; 然而这并没有什么*用; 因为超时了,感觉是Sicily的时间限制不太合理; 你这可有多个cases啊; 直接用题解标达都没有办法过的; 于是; 我祭上了

2015-05-28 08:41:15 1088

原创 LeetCode Contains Duplicate

LeetCode Contains Duplicate题目思路刚开始还以为是什么异或判重; 后来发现是自己想错了- -; 还是哈希好点。代码bool containsDuplicate(int* nums, int numsSize) { if (numsSize <= 1) return false; int length = 100007; if (numsSize

2015-05-26 08:23:43 1198

原创 LeetCode Shortest Palindrome

LeetCode Shortest Palindrome题目思路其实原本想了一种算法,自己算了下大概复杂度为O(n^2); 想着定是不过了,于是看了Discuss里面的题解; 附上链接:KMP思路题解; 而后把原来的题解翻译了一下,改成了C语言的; 详见代码。代码//通过构造一个字符串S,再利用KMP算法可以解决这个问题//其中S=(输入的s)+(一个绝不会在s中出现的符号,比如#)+(s

2015-05-26 08:22:42 1286

原创 Sicily 14515. Cookie Selection

Sicily 14515. Cookie Selection题目思路用两个堆来放全部数就好了; 每个堆放一半; 题目说得这么长几个意思- -。代码#include <queue>#include <vector>#include <functional>#include <stdio.h>using namespace std;int main() { priority_queue

2015-05-26 08:21:43 901

原创 LeetCode Kth Largest Element in an Array

LeetCode Kth Largest Element in an Array题目思路利用快排的思想,每次都能得到一个位置mid; 并且我们知道在mid之前的数都是大于nums[mid]; 并且我们知道在mid之后的数都是小于nums[mid]; 根据K和mid的大小即可继续划分下去; 直到找到目标。代码int Adjust(int * nums, int l, int r) {

2015-05-25 09:00:06 2084

原创 LeetCode Combination Sum III

LeetCode Combination Sum III题目思路DFS代码class Solution {public: vector<vector<int>> Ans; vector<int> AnAns; int K; int N; vector<vector<int> > combinationSum3(int k, int n) {

2015-05-25 08:59:41 925

原创 LeetCode Word Search II

LeetCode Word Search II题目思路结合Trie和DFS即可。 用C写真是虐心。 也不知道有没有内存泄露。 如有,望指正。代码struct TrieNode { char c; // sons for "abcdefghijklmnopqrstuvwxyz\0" struct TrieNode * son[27]; };struct TrieNod

2015-05-21 08:13:25 1194

原创 LeetCode House Robber II

LeetCode House Robber II题目思路思路来源于Discuss。 一是在Robber这题中的O(n)解法; 二是在Robber这题中,我们只需要分别考虑包含了nums[0]和nums[n-1]的情况即可。 注意这里的包含并不是说Robber一定要偷num[0]或nums[n-1],只是说考虑进去的意思。代码#define max(a, b) ((a)>(b)?(a):(b))

2015-05-21 07:51:49 1499

原创 Sicily 14513. Aaah!

Sicily 14513. Aaah!题目思路这玩意还有什么思路。代码#include <stdio.h>int main() { int d = 0, j = 0; char c; while (~scanf("%c", &c)) if (c == '\n') { while (~scanf("%c", &c) && c != '\n')

2015-05-21 07:50:35 960

原创 汇编语言 贪吃蛇/鱼/变色/时间周期

计算机组成原理作业。要求:实现一条鱼在浴缸内游动,可以上下左右控制。 然后自己就无聊弄了一条变色鱼:自动变色,可以控制方向:按住某个方向键可以加速:流程图:Created with Raphaël 2.1.2开始清屏、画鱼是否有输入选择方向是否越界不改变位置沿指定放线游一步是否一个周期自动按原方向游一步是否越界反方向游一步yesnoyesnoyesnoyesno代码在Masm for Window

2015-05-20 07:36:03 1717 1

原创 Sicily 14514. Bread Sorting

题目 思路 题意是说将一组数排列成另外一组数,排序的方式是每次取出3个连续的的数字,然后abc可以cab,也就整体右移,超出位置的到最左边。 问能否排列成目标数组。 额,实在是不会做。在网上找到了好几个人的题解,稍加重写并比较性能好了。 好像和树状数组有关。 如代码区所示。代码 第一种方法,用时0.9s: by Per Austrin//Sample solution for the

2015-05-18 08:33:59 1362

原创 Sicily 2016. Emergent escape

题目 思路 忽然发现小号里有这个代码,然后大号没有做。 思路忘记了,这代码应该是别人的,好像是书上的。 注释解释得也挺清楚了。代码#include<stdio.h>#include<math.h>#include<string.h>const int maxn = 1000 + 10; //最大陨石数const double eps = 1e-8; //控制精度const doubl

2015-05-18 08:32:05 926

原创 汇编相关(ASCII码字符表 DEBUG命令 BIOS功能调用表 DOS功能调用表 汇编语言错误信息表)

汇编相关一些关于汇编的常用东西,包括:ASCII码字符表DEBUG命令BIOS功能调用表DOS功能调用表汇编语言错误信息表ASCII码字符表DEBUG命令BIOS功能调用表DOS功能调用表汇编语言错误信息表

2015-05-18 08:31:32 4129

原创 Sicily 14516. Doorman

题目 思路 看了好久才懂题目的意思。 男男女女排队,给定一个Club中男女差值的最大值,问最多可以有多少人进入Club。 需要注意的是,我们可以让一个人插队到前一位。 那么当我们发现差值超过给定的最大值的时候,应该检查是否可以通过让下一个人先进(插队)来解决,如果仍然不能解决,那么之后的人都别进了。代码#include <stdio.h>#include <string.h>int ma

2015-05-16 13:28:01 728

原创 LeetCode Add and Search Word - Data structure design

题目 思路 前缀树,之前有一道LeetCode的题差不多的,我用之前的代码修改了一下即过。代码struct WordDictionary { char c; // sons for "abcdefghijklmnopqrstuvwxyz\0" struct WordDictionary * son[27]; };/** Initialize your data str

2015-05-16 10:17:42 1418

原创 LeetCode Course Schedule II

题目 思路 还是拓扑排序的思路。需要注意的是,这题的量变大了,会有2000门或以上的课,因此用malloc动态分配数组。 其实C真的挺好玩。代码int * findOrder(int numCourses, int ** prerequisites, int prerequisitesRowSize, int prerequisitesColSize, int * returnSize) {

2015-05-14 14:21:32 759

原创 LeetCode Minimum Size Subarray Sum

题目 思路 O(n)的思路比较简单,直接用两个下标扫一遍即可; O(nLogn)有点难,个人感觉应该是先得到Sum[i](前i+1)个数的和,因为数字都是正数,那么Sum数组可以用二分查找。我们扫一遍Sum,再二分查找符合条件的前一个Sum的位置即可。代码 O(n):int minSubArrayLen(int s, int * nums, int numsSize) { int s

2015-05-13 07:20:38 1405

原创 Sicily 1924. Turn Over the Coins

题目 思路 这题的题目说得不是很清楚,其实这是一个很经典的翻硬币游戏。 有N个硬币,我们每次先选一个正面朝上的硬币,将其翻转,然后从这个硬币的左边选择0~2个无论正反的硬币翻转。 最后没得翻的人为负者(也即硬币都是反面)。 思路来源于这篇博客: http://blog.sina.com.cn/s/blog_8f06da99010125ol.html代码#include <stdio.h>

2015-05-09 11:24:51 841

原创 LeetCode Implement Trie (Prefix Tree)

题目 思路 直接前缀树。代码struct TrieNode { char c; struct TrieNode * son[27]; // sons for "abcdefghijklmnopqrstuvwxyz\0"};struct TrieNode * trieCreate() { struct TrieNode * trieNode = (struct Trie

2015-05-09 08:38:29 959

原创 LeetCode Course Schedule

题目 思路 明显的拓扑排序。 这里用的C写,用malloc动态分配内存给二维数组挺烦的,当做锻炼吧。代码bool canFinish(int numCourses, int** prerequisites, int prerequisitesRowSize, int prerequisitesColSize) { int * Indegrees; bool ** IsConne

2015-05-07 14:41:48 939

原创 Sicily 14460. Mobile

题目 思路 直接模拟。代码#include<stdio.h>char C2I[26][5];int main() { char Letter[10][6] = { "\0", "\0", "abc\0", "def\0", "ghi\0", "jkl\0", "mno\0", "pqrs\0", "tuv\0", "wxyz"}; for (int i = 1; i <= 9; i+

2015-05-05 21:02:14 542

原创 大小写字母快速转换

问题 如果要在大小写之间转换,如何提高速度?思路 让我们观察大小写字母的ASCII码: 大写字母 ASCII_DEC ASCII_BIN ASCII_BIN ASCII_DEC 小写字母 A 65 01 0 00001 01 1 00001 97 a B 66 01 0 00010 01 1 00010 98 b …

2015-05-05 17:48:07 1492

原创 Sicily 1901. Beans

题目 大意 现在有N堆豆子,要从这N堆豆子中选连续的若干堆,选取的豆堆豆数总和为Sum,现在要使Sum%P≤K,问如何取可以使Sum/P最大。思路 利用前缀和数组Sum[i]快速计算和。 中间一段连续的豆数为Sum[p2] - Sum[p1],那么有: 0≤(Sum[p2] - Sum[p1])%P≤K; 即(Sum[p2]%P - Sum[p1]%P + P)%P≤K; 我们可以事先

2015-05-05 14:59:23 590

原创 LeetCode OJ Reverse Linked List

题目 思路 翻转单向链表,这里题目要求用递归和非递归实现,具体思路见代码。代码 a)非递归struct ListNode* reverseList(struct ListNode* head) { struct ListNode * Before = NULL; struct ListNode * OriPresent = head; while (OriPresent

2015-05-05 09:35:41 649

原创 Sicily 1922. Winning Ways

题目 尼姆博奕(Nimm Game) 两个人从N堆石子中的任意一堆任取1个或多个,取到没得取的人为负者。奇异局势 如果面对一种局势的人是必败的,那么这种局势叫做奇异局势。比如如果N堆石子都是0个,那么先取者面对的(0,0,0,…,0)就是一种奇异局势。 如果我想让我的对手输,我会想尽办法让他面对奇异局势。 奇异局势有这样一种性质,比如现在的N堆石子的数目为a1,a2,a3,…,aN,那么:

2015-05-04 09:17:01 3087

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除