整理一部分常用批处理操作。
介绍在Windows系统桌面创建一个自定义回收站图标的过程,能够将拖动于其上的文件移动到自定义的回收文件夹。
我喜欢你,毫无理由地 岚 我喜欢你,毫无理由地 若要举出些什么,那将是: 遇见时你张开又合拢的手指, 道别时你摇动的手腕, 你浅色的明眸, 和你头发恰到好处的鬈曲。 ——谨以此诗献给
SG function & SG theorem 文中证明皆为擢发数根所得,纰漏在所难免,请不吝赐教。 先介绍一些相关的定义。 ICG (公平组合游戏) 抽象模型: 给定一个有向无环图和一个起始顶点上的一枚棋子,玩家交替的将这枚棋子沿有向边进行移动,无法移动者判负。问是否有必胜策略。 P-position & N-position 定义 P:当前局面先手必败 N:当前局面先手必胜 以上都是指双方采取最
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
实用技巧 读入/输出优化 “天下武功,无坚不破,唯快不破。” ——忘了出自哪里 众所周知,越是方便的读入输出方法一般越慢。所以大部分C++选手会使用scanf()&printf()代替cin&cout。 但是面对某些大得变态不太友好的数据,scanf也会显得无能为力。 所以,能不能更给力一点呢
动态规划——背包问题 01背包 数组压成一维。 例题:luogu2871 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 //01bag #include<iostream> #include<cstring> #include<cstdio> #include<cstdlib> #include<algorithm> using namespace std; template<typename T> void read(T& w) { char r; for(r=getchar();r<48||r>57;r=getchar()); for(w=0;r>=48&&r<=57;r=getchar())w=w*10+r-48; } const int maxn=3413; const int maxm=12883; int n,m,v[maxn],w[maxn]; void input() { read(n),read(m); for(int i=1;i<=n;++i) { read(w[i]),read(v[i]); } } int f[maxm]; void solve() { for(int i=1;i<=n;++i) { for(int j=m;j>=w[i];--j) { if(f[j-w[i]]+v[i]>f[j]) f[j]=f[j-w[i]]+v[i]; } } } int main() { freopen("luogu2871_1.in","r",stdin); //freopen("luogu2871.out","w",stdout); input(); solve(); printf("%d\n",f[m]); return 0; } 输出方案 这部
Hexo + Git + Coding Pages = Blog 前置条件 git+命令行(linux) 环境配置 以下操作基于Windows git安装与配置 下载git 安装与配置:略 Nodejs安装与配置 下载Nodejs 安装Nodejs 在安装时界面下方有一个"Add to PATH"的选项,最好勾上;或者也可以安装完成后自己手动添加环境变量
用栈实现简单表达式求值 准备 建立两个栈:操作数栈+操作符栈 步骤 没有括号的情况 注意:弹出时两个操作数的顺序要反一下,以确保运算的顺序和输入的顺序一致 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 while(从左到右读入操作数/操作符) { if(is 操作数x) { 操作数栈.push(x); } if(is 操作符op) { while(优先级
最长上升子序列 O(n^2) f[i]=max{f[j]+1}, a[j]<=a[i] O(nlogn) 将思维过程转换一下。 假设i前面存在的上升子序列长度为1~len 那么只要将a[i]接到某个比它小的数a[j]后面,就构成了一个新的子序列,且f[i]=f[j]+1 想要f[i]尽量大,要求f[j]尽量大 一种策略是从len开始往前找,对于某个len,可能有j1,j2,…