ZIPacm常用算法模板(C++版) 5.57KB

un_fired需要积分:10(1积分=1元)

资源文件列表:

acm常用算法模板.zip 大约有8个文件
  1. dijkstra算法.txt 1.97KB
  2. kmp.txt 493B
  3. 匈牙利算法.txt 601B
  4. 区间修改线段树.txt 2.07KB
  5. 单点修改线段树.txt 2.08KB
  6. 快速幂模板.txt 228B
  7. 最小生成树(krus).txt 1.18KB
  8. 背包.txt 2.44KB

资源介绍:

acm常用算法模板(C++版)
//01背包 #include <stdio.h> #include <string.h> int f[1010],w[1010],v[1010];//f记录不同承重量背包的总价值,w记录不同物品的重量,v记录不同物品的价值 int main(){ int t,m,i,j; memset(f,0,sizeof(f)); //总价值初始化为0 scanf("%d %d",&t,&m); //输入背包承重量t、物品的数目m for(i=1;i<=m;i++) scanf("%d %d",&w[i],&v[i]); //输入m组物品的重量w[i]和价值v[i] for(i=1;i<=m;i++){ //尝试放置每一个物品 for(j=t;j>=w[i];j--){//倒叙是为了保证每个物品都使用一次 f[j]=max(f[j-w[i]]+v[i],f[j]); //在放入第i个物品前后,检验不同j承重量背包的总价值,如果放入第i个物品后比放入前的价值提高了,则修改j承重量背包的价值,否则不变 } } printf("%d\n",f[t]); //输出承重量为t的背包的总价值 return 0; } //完全背包 #include<cstdio> #include<algorithm> using namespace std; int w[300],c[300],f[300010]; int V,n; int main() { scanf("%d%d",&V,&n); for(int i=1; i<=n; i++) { scanf("%d%d",&w[i],&c[i]); } for(int i=1; i<=n; i++) for(int j=w[i]; j<=V; j++)//注意此处,与0-1背包不同,这里为顺序,0-1背包为逆序 f[j]=max(f[j],f[j-w[i]]+c[i]); printf("max=%d\n",f[V]); return 0; } //多重背包 #include <iostream> #include<cstdio> #include<cstring> using namespace std; int dp[100007],n,m,a[105],c[105],count; void zeropack(int cost,int value) { for(int i=m;i>=cost;i--) dp[i]=max(dp[i],dp[i-cost]+value); // cout<<"01"<<endl; } void completepack(int cost,int value) { for(int i=cost;i<=m;i++) dp[i]=max(dp[i],dp[i-cost]+value); //cout<<"complete"<<endl; } void multipack(int cost,int value,int num) { if(num*cost>=m) { completepack(cost,value); return; } int k=1; while(k<num) { zeropack(k*cost,k*value); num-=k; k*=2; } zeropack(num*cost,num*value); } int main() { // freopen("cin.txt","r",stdin); while(~scanf("%d%d",&n,&m)) { if(n==0&&m==0) break; for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) scanf("%d",&c[i]); memset(dp,0,sizeof(dp)); count=0; for(int i=1;i<=n;i++) { multipack(a[i],a[i],c[i]); } for(int i=1;i<=m;i++) { if(dp[i]==i) count++; //printf("dp[]=%d\n",dp[i]); } printf("%d\n",count); } return 0; }
100+评论
captcha
    类型标题大小时间
    ZIP《分布式事件驱动控制在有限时间一致性中的研究与应用-以为例》,分布式事件驱动控409.87KB2月前
    ZIPApollo3-Blue OTA中文说明3.32MB2月前
    ZIP探讨马兰戈尼对流对Comsol激光抛光熔覆中熔池流动行为的影响:活性元素调控表面张力系数的力学分析 ,"Comsol激光抛光技术:熔覆熔池流动与马兰戈尼对流效应的深度解析,考虑活性元素影响下的表面张力108.52KB2月前
    ZIP基于MPC、PTC及AFS技术的车辆路径跟踪控制策略仿真研究-以72km/h高速度、不同附着系数双移线工况为例,在MATLAB 2020b及CarSim 2020环境下仿真验证,"基于MPC与PTC657.76KB2月前
    ZIPLSTM模型在电池SOC估计中的基本应用:含两个数据集、代码介绍与结果展示的全套解决方案(共包含70余个文件),"LSTM算法在电池SOC估计中的应用:最基本方法及全解析代码包,涵盖数据集介绍、预处理189.08KB2月前
    ZIP三相四线制逆变技术:采用SPWM调制方式,精准控制相电压不平衡,24k开关频率下的正弦查表技术优化应用,三相四线制逆变技术:采用SPWM调制方式,引入相电压不平衡控制策略,24k开关频率下的正弦查表应585.56KB2月前
    ZIP毕设-基于SpringBoot CRM智能办公系统13.95KB2月前
    ZIP基于Comsol软件:静电场、电磁场传热学建模与仿真技术分析及其在等离子体ICP中的实际应用电路模电物理深度研究,基于Comsol的静电场、电磁场仿真及传热、等离子体ICP建模技术研究与应用,Coms44.9KB2月前