Skip to content

Instantly share code, notes, and snippets.

View sodabear's full-sized avatar

James Jing sodabear

View GitHub Profile
@sodabear
sodabear / validate_credit_card.js
Created May 26, 2023 01:47 — forked from DiegoSalazar/validate_credit_card.js
Luhn algorithm in Javascript. Check valid credit card numbers
// Takes a credit card string value and returns true on valid number
function valid_credit_card(value) {
// Accept only digits, dashes or spaces
if (/[^0-9-\s]+/.test(value)) return false;
// The Luhn Algorithm. It's so pretty.
let nCheck = 0, bEven = false;
value = value.replace(/\D/g, "");
for (var n = value.length - 1; n >= 0; n--) {
@sodabear
sodabear / Capybara.md
Created December 2, 2022 15:45 — forked from tomas-stefano/Capybara.md
Capybara cheatsheet

Capybara Actions

# Anchor
click_link 'Save'

# Button
click_button 'awesome'

# Both above
@sodabear
sodabear / CashRegister.Cpp
Last active March 13, 2019 09:35
CashRegister
#include <iostream>
#include <string>
using namespace std;
class CashRegister {
// used only one item
void checkout(int cash){
@sodabear
sodabear / 数据结构的解释
Created January 8, 2017 03:22
什么是数据结构
什么是数据结构
1 什么是数据结构?
数据结构是组织数据的方式,这样可以让复杂程序得以高效运行.
如果你看到这里就懂了的话可以直接跳到2,3,4,不然的话可以看下面这个类比
如果说程序就是给定一个输入,返回一个输出
那我们可以假设我有一个程序叫 旅游计划
那么输入就是出发地和目的地,那么输出就是可以或者不可以,其实输出还可以是
其他的情况,这是这里我们暂且用个简单的
@sodabear
sodabear / toposort.cpp
Last active November 28, 2016 21:47
toposort checking cycle on own: Credit to Ruichao
//@Author : Ruichao Chen
int V; // number of vertices
vector<int> adj[1000]; // adjacency list (adj[u] is list of successors of u)
int degree[1000]; // number of edges pointing to u
vector<int> sorted;
bool toposort() {
for (int u = 0; u < V; u++) {
int sz = adj[u];
Dp
出装: 最终 1假腿 2 面纱 4大勋章 5笛子 5大件 6大件
前期 挂件 瓶子 鞋子 眼泪 魔棒 铁艺头盔 挂件 假腿 面纱(增加自己Q和E的法系输出)
面纱出完之后出一个 Vitality Booster(合成 玲珑心或血精)
中期 勋章(加护甲+配合大招爆照) hood of defense(魔法) ==>大勋章 笛子
出完上面两个再出一个Vitality Booster(合成 龙心)
中期 吹风 (吹风可以配合大熊掌把自己的效果给取消掉)| 阿托斯 (对面爆发不高 或者是顺风局可以出阿托斯)
后期 bkb(很多控制)|林肯(冲脸控制:sven) 玲珑心(缺蓝)|龙心(不缺蓝+很多高爆发+秒人很强)
希瓦(逆风局)|强袭(适合物理核+加护甲+配合大招爆照) 飞鞋
情况: 刃甲(逆风 对面高爆发 喜欢秒你) 臂章(小龙心 提供500点 可以在对面没有持续伤害的时候出 配和吹风很厉害)
@sodabear
sodabear / Storm Spirit
Last active June 19, 2016 13:17
附带对中单对线的理解
1 出装的理解:
出门装:1min速瓶子 = 2树枝 + 1头环 360+余额
2min 瓶子 = 1挂件 + 1树枝+ 1心灵之火
核心出装:瓶子(2分钟10秒) 假腿(5-7分钟) 魂戒(4-7-11min之前) 血精石(14-19min) 紫苑(7-9分钟之后) 林肯|西瓦(7-9分钟之后)
情况装备
出装时机 血精石的时间一定要快 顺风希瓦 逆风林肯
出装顺序 可以先出魂戒再假腿
前期可以带2-3次芒果增加回来
血精石是滚雪球的装备,所以不要死
@sodabear
sodabear / How to Win a Dota2 Game
Last active June 16, 2016 21:54
Things carry, support, mid should do in dota2
This quote from reddit inspired me a lot about how
to win dota2 game:
"Mindlessly safe play does not win high level pub games.
You win by identifying enemy weaknesses and exploiting them,
and if you’re consistently doing neither than you are as much of
a handicap to your teams as any of the feeders that you identify."
Analysising their weaknesses bascially means know enemy safelane carry, jungler and mid players's weakness.
Carry's Weakness in laning phase
Most of the safelane carry are very weak during the laning phase before 6,

随便扯一个61A的题目好了(其实是我太懒不想找题...)
不知道你还记得不记得61A的某个MT的leaps那道题。

有一排N个宝藏,从左到右每个宝藏价值分别为vi。地精可以拿走其中一些宝藏,但是不能取相邻的宝藏。求最大价值和。
例如有6个宝藏,价值分别为2 5 2 1 4 1。我可以取2 2 4、5 1 1、5 4等等,但是不能取2 5 2,因为2和5是相邻的。

令f[i]为前i个宝藏中取走若干个所能获得的最大收益
易知,f[1] = v[1],f[2] = max(v[1], v[2])(为什么?)
f[i] = max(f[i-1], f[i-2] + v[i])
answer = f[N]

下面题目中有个别题用到了尚未讲解的知识,但是每一题至少能做出一两步,或者写出一个暴力解。能做到哪做到哪吧。

VIJOS 1102 陶陶摘苹果(NOIp 2005 普及组)
VIJOS 1445 陶陶抢苹果
VIJOS 1291 苹果摘陶陶
(我才不会告诉你还有一道陶陶吃苹果、一道陶陶玩红警呢)

Euler 15 Lattice paths

Euler 67 Maximum path sum II