- 博客(42)
- 收藏
- 关注
转载 边际成本与机会成本
从理论上来讲,机会成本和边际成本应该是没有直接联系的,机会成本是一种隐性的不直接发生的成本,并且机会成本是相对的,是针对不同项目来说的,比如我做A项目而放弃B项目,所导致的如果我选B项目能够获得的收益。这不是真实发生的,所以机会成本主要是决策项目选择的时候使用。如果你已经确定了用某一个项目,机会成本也就没有用处了。而边际成本,是在你选用了一个项目之后,决策是否继续增加投入使使用的,如果边际收益也就是边际收入大于成本,从理论上讲你可以继续增加投入,直至边际收益为0,以达到最大的收益。这个边际成本随着你投入的
2021-09-14 23:23:47 1852
原创 Markdown语法手册(Typora)
Hello,Typora!目录文章目录Hello,Typora!目录标题段落字体分割线脚注列表无序列表有序列表列表嵌套列表缩进区块区块引用区块嵌套区块中使用列表列表中使用区块代码单行代码代码块链接[TOC] 自动生成目录标题使用#可表示1-6级标题# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题注意#后的空格不要忘记标题在大纲中有分层次的效果段落字体斜体 :*sth* or _sth_ or Ctrl+I黑体
2021-08-31 15:50:39 13121
原创 【NOI2018】归程
https://www.cnblogs.com/zwfymqz/p/9683523.html#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>using namespace std;const int ma...
2019-01-26 20:11:30 249
原创 【NOI2018】归程
https://www.cnblogs.com/zwfymqz/p/9683523.html#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>using namespace std;const int ma...
2019-01-26 20:10:32 357
转载 一元三次方程求解 (laoj1114)
一元三次方程求解 (laoj1114) 有形如:ax^3+bx^2+cx+d=0这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后4位。 提示:记方程f(x)=0,...
2018-08-02 00:25:51 22934
原创 归并排序
归并排序void sort(int l,int r){ if(l==r)//若只有一个数字,则无需排序 return; int mid=(l+r)>>1; sort(l,mid); sort(mid+1,r);//分治 int i=l,j=mid+1,k=l; while(i<=mid&&...
2018-07-31 11:05:14 194
原创 DFS SPFA
void spfa(int u){ if(flag) return; vis[u]=1; for(int i=head[u];i;i=e[i].next){ int v=e[i].to; if(dis[v]>dis[u]+e[i].w){ dis[v]=dis[u]+e[i].w; if(vis[
2017-12-12 13:06:22 557
原创 前向星存储方式
struct data{ int to,next,w;}e[40010];void add(int u,int v,int w){ e[++cnt].to=v; e[cnt].w=w; e[cnt].next=head[u]; head[u]=cnt;}for(int i=head[u];i;i=e[i].next){ int v=e[i].to;
2017-12-12 12:27:28 325
原创 【LCA】最近公共祖先
#include<iostream>#include<cstdio>#include<cstring>using namespace std;inline int read(){ int x=0;char ch; ch=getchar(); while(ch<'0'||ch>'9') ch=getchar(); while(ch>='0'&&ch<='9')
2017-11-11 18:20:34 233
原创 【位运算】
说明: (1)位运算符中除 ~ 外,均为二目运算符,即要求出侧各有一个运算量。 (2)运算早只能是整型或字符型的数据,不能为实型数据。i^1: 若i为偶数 i^1=i+1; 若i为奇数 i^1=i-1;(i>>k)&1: i的二进制中第k位交换: a=a^b; b=a^b; a=a^b;取反: ~某一位设置为0或1:a|=(1<<x) //x就是某位需要置1的数字,如第四
2017-11-06 13:26:59 228
转载 C++读入优化和输出优化
【转葛姐的http://www.cnblogs.com/shamman/p/7455819.html】读入优化:inline int read() { int x=0, w=1; char ch=0; while (ch<'0' || ch>'9') { if (ch=='-') w=-1; ch=getchar();
2017-11-06 13:02:02 627
原创 【数论】【中国剩余定理】解线性模方程
n个方程:x=a[i](mod m[i]) (0<=ill china(int n,int *a,int *m){ ll M=1,d,y,x=0; for(int i=0;i<n;i++) M*=m[i]; for(int i=0;i<n;i++){ ll w=M/m[i]; gcd(m[i],w,d,d,y); x=(x+y*
2017-11-03 06:41:52 214
原创 【数论】求逆元
计算模n下a的逆,如果不存在逆,返回-1#include<iostream>#include<cstdio>#define ll long longusing namespace std;ll gcd(ll a,ll b,ll &d,ll& x,ll& y){ if(!b){d=a;x=1;y=0;return x;} else{ gcd(b,a%b,d,y,
2017-11-03 06:18:45 414
原创 【数论】用类似筛法的方法计算一段欧拉函数值
#include<iostream>#include<cstdio>#include<cmath>using namespace std;const int maxn=100000;int phi[maxn];void phi_table(int n){ for(int i=2;i<=n;i++) phi[i]=0; phi[1]=1; for(int i=2;i
2017-11-03 06:04:34 226
原创 【数论】计算单个欧拉函数
#include<iostream>#include<cstdio>#include<cmath>using namespace std;int euler_phi(int n){ int m=(int)sqrt(n+0.5); int ans=n; for(int i=2;i<=m;i++){ if(n%i==0) { ans
2017-11-03 05:58:33 483
原创 【分块】
[题目](https://www.luogu.org/problemnew/show/3372)#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>using namespace std;long long n,q,a[100004],b[100004],add[100004],blo,sum[100004
2017-11-02 12:11:18 230
原创 【数学】康托展开
康托展开把一个整数X展开成如下形式:X=a[n](n-1)! + a[n-1](n-2)! +…+ a[i]*(i-1)! + … + a[2]*1! + a[1]*0! 其中a[i]为当前未出现的元素中是排在第几个(从0开始),并且0 <= a[i] < i,1 <= i <= n。康托的逆运算在1…n按字典序的排列中,求第n个序列,这就是康托的逆运算。
2017-11-02 11:55:34 282
原创 【数学】高斯消元
Laoj1387 贾老二学数学#include<iostream>#include<cstdio>using namespace std;int n;double a[104][104],ans[104];void gauss(){ for(int i=1;i<=n;i++){ if(!a[i][i]){ for(int j=i+1;j<=n
2017-11-01 13:29:53 264
原创 【数论】快速幂取模
int main(){ scanf("%lld%lld%lld",&a,&n,&m); long long s=1; while(n>0){ if(n%2) s=(a%m*s)%m; a=(a%m*a%m)%m; n/=2; } printf("%lld",s);}
2017-11-01 13:27:29 303
原创 【数位dp】B-number
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int n,m,a[20],dp[20][4][20];int dfs(int pos,int sta,bool limit,int p){ if(pos==-1) return p==0&&sta==2; if(!limit &&
2017-10-31 23:42:32 287
原创 【数位dp】不要62
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int n,m,a[20],dp[20][2];int dfs(int pos,int pre,int sta,bool limit){ if(pos==-1) return 1; if(!limit && dp[pos][sta]!
2017-10-31 12:24:01 274
原创 【数论】最小公倍数的二进制优化
#include<iostream>using namespace std;inline int gcd(int a,int b){ if(!a || !b) return a^b; int i=0,j=0; while(!(a&1)) a>>=1;i++; while(!(b&1)) b>>=1,j++; while(a!
2017-10-27 13:10:14 375
原创 【数论】扩展欧几里得算法
#include<iostream>#include<cstdio>using namespace std;inline void exgcd(int a,int b,int c,int &x,int &y,int &p){ if(b==0) { if(c%a==0) {x=c/a;y=0;} else p=-1; }else{
2017-10-27 13:04:05 266
原创 【数论】筛素数
int m=sqrt(n+0.5);memset(vis,0 sizeof(vis));for(int i=2;i<=m;i++){ if(!vis[i]) for(int j=i*i;j<=n;j+=i) vis[i]=1;}//vis[i]=0的数即为素数
2017-10-27 06:18:25 321
原创 【暴力】枚举子集
0~n的所有子集#include<iostream>#include<cstdio>using namespace std;void print_subset(int n,int s){ for(int i=0;i<n;i++) if(s&(1<<i)) printf("%d ",i); printf("\n");}int main(){ for(int
2017-10-27 05:59:42 252
原创 【线段树】Laoj1299
#include<iostream>#include<cstdio>using namespace std;int const maxn=200001;int n,m,p,a[maxn];struct data{int l,r,val;}tr[4*maxn];void build(int k,int s,int t){//建树 tr[k].l=s;tr[k].r=t; if(s
2017-10-24 13:33:40 296
原创 【线段树】单点求值+区间修改
#include<iostream>#include<cstdio>using namespace std;int n,m,a[1000004];struct data{int l,r,val,lazy,len;}tr[2*1000004];void build(int k,int s,int t) {//建树 tr[k].l=s;tr[k].r=t;tr[k].len=t-s+1;
2017-10-24 12:59:43 398
原创 【图论】二分图最大匹配(模板+定义定理)
模板dfs:bool dfs(int k){ for(int i=1;i<=n;i++){ if(!v[i] && map[k][i]){ v[i]=1; if(link[i]=-1 || dfs(i)){ link[i]=k; return 1;
2017-10-24 12:45:02 589
原创 【线段树】区间求和+区间修改(区间加)
#include<iostream>#include<cstdio>using namespace std;int n,m,a[1000004];struct data{int l,r,val,lazy,len;}tr[1000004];void build(int k,int s,int t) {//建树 tr[k].l=s;tr[k].r=t;tr[k].len=t-s+1;
2017-10-24 01:19:50 1507
原创 【线段树】区间求和+单点修改
#include<iostream>#include<cstdio>using namespace std;int n,m,a[100004];struct data{int l,r,val;}tr[100004];void build(int k,int s,int t) {//建树 tr[k].l=s;tr[k].r=t; if(s==t) {tr[k].val=a[s];r
2017-10-23 13:30:39 420
原创 【线段树】区间求和(不带修改)
#include<iostream>#include<cstdio>using namespace std;int n,m,a[100004];struct data{int l,r,val;}tr[100004];void build(int k,int s,int t) {//建树 tr[k].l=s;tr[k].r=t; if(s==t) {tr[k].val=a[s];r
2017-10-23 13:19:00 208
原创 【线段树】 区间最大值(不带修改)
#include<iostream>#include<cstdio>using namespace std;int n,m,a[100004];struct data{int l,r,val;}tr[100004];void build(int k,int s,int t) {//建树 tr[k].l=s;tr[k].r=t; if(s==t) {tr[k].val=a[s];r
2017-10-23 13:14:33 332
原创 floyd最小环
for(int i=1;i<=m;i++){ scanf("%d%d%d",&x,&y,&z); if(a[x][y]<=z) continue; a[x][y]=z; a[y][x]=z; b[x][y]=z; b[y][x]=z;}for(int k=1;k<=n;k++){ for(int i=1;i<k;i++){
2017-09-27 12:45:49 236
转载 STL map
map的基本操作函数: C++ Maps是一种关联式容器,包含“关键字/值”对 begin() 返回指向map头部的迭代器 clear() 删除所有元素 count() 返回指定元素出现的次数 empty() 如果map为空则返回true end() 返回指向map末尾的迭代器 eq
2017-09-02 21:35:31 189
原创 memmove函数
要加cstring的头文件int x,y,z;int a[10],b[10];memmove(a+x,b+y,z); //表示b数组从第y个位置开始的z个元素复制到a数组从第x个位置开始的z个位置上 memmove的处理措施: (1)当源内存的首地址等于目标内存的首地址时,不进行任何拷贝 (2)当源内存的首地址大于目标内存的首地址时,实行正向拷贝 (3)当源内存的首地址小于
2017-09-02 21:32:06 297
原创 printf输出补零
前面补零:printf("%3d",a); //如果知道位数具体数字printf("%*d",n,a);//不知道具体数字,用*代替位数,n为保留的位数后面补零printf("%-3d",a);printf("%-*d",n,a); //加负号即可
2017-09-02 16:18:42 6670 2
原创 vijos 1565 多边形
一看,水题,直接用区间dp模板 结果直接WA了6个点QAQ发现可以是负数,max改为-0x3f3f3f3f 结果还是WA了5个点QAQ (不过以后准备都用-0x3f3f3f3f来赋值)之后看题解 我去!!!!! 乘法的特殊性!!!! 负负得正!!! 也就是max可能是从max*max转移过来的,也可能是从min*min转移过来的 同理min的也是这样代码如下#include<iost
2017-08-22 00:24:35 336
原创 区间DP模板
模板:假设要求区间[a,b]的最大/小值for(int l=1;l<=b-a+1;l++){//l枚举区间长度 for(int i=a;i<=b;i++){//i枚举区间起点 int j=i+l-1;//j为区间终点 if(j>b) break;//重要!!! for(int k=i;k<j;k++)//k为区间中的点,注意为[i,j)
2017-08-21 23:09:47 233
原创 Dilworth定理/NOIp1999拦截导弹
最少链划分数=最长反链长度eg:NOIp1999 拦截导弹第二问应用Dilworth定理最长反链长度即是最长不上升序列长度
2017-08-21 21:30:32 418
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人