二模 (8) day1

第一题:

题目大意:

梦幻城市每年为全市高中生兴办一次运动会。为促使各校同学之间的交流,采用特别的分队方式:每一个学校的同学,必须被均匀分散到各队,使得每一队中该校的人数皆相同。为增加比赛的竞争性,希望分成越多队越好。你的任务是由各校的人数决定最多可以分成的队数。

 

解题过程:

1.直接求所有数的最大公约数即可。

初始得分100.

 


 

 

第二题:

题目大意:

给出一个式子火柴棍组成的A+B=C。(A,B,C<=999),求移动最少的火柴使得等式成立。不允许改变位数以及符号,不要制造0开头的数。

 

解题过程:

1.一开始想到用dfs什么的直接暴搜,但是写起来各种麻烦。。而且可能还很慢。

2.考虑到数的范围<=999,那么就枚举目标状态的A和B,1000*1000的复杂度,然后计算初始状态到目标状态的最少步数。。

3.计算最少步数的过程:先打个表,move[i][j]表示数字i到数字j需要移动多少根火柴使得i是j的一部分,或者j是i的一部分。

比如 0到6,需要把0的一根火柴移到最中间,所以move[0][6]=1.   1 到 7,1本身就是7的一部分,所以move[1][7]=0;

然后用hash[i][j] 表示 i 变成 j 需要添加 多少根火柴。 比如 4需要4根火柴,8需要7根,所以

hash[4][8]=3;

hash[8][4]=-3; (负数表示需要拿掉火柴)

4.然后把初始状态和目标状态逐位 比较 计算距离 , 比如 12 到 23 ,1变成2 需要添加3根火柴,2到3需要移动1根火柴。

用tmp1表示一共需要添加多少根火柴,tmp2表示一共需要移走多少根火柴(就是所有负数的绝对值的和),tmp3表示需要移动多少根火柴。   首先必须满足tmp1= tmp2,也就是目标状态和初始状态用的火柴一样多。。然后更新ans。

ans=min(ans,tmp1+tmp3);

有点贪心的思想。 初始得分100。

 


 

 

第三题:

题目描述:

长郡中学校长打算举行建校100周年的晚会。学校的职员是分等级的,也就是说职员之间的上下级关系组成一棵以校长为树根的树。校长要亲自邀请一些职员参见晚会。同时校长亲自到场欢庆这个节日。职员用1~n之间的整数编号,人事处给出了每个职员的搞笑指数。如果一个人和他上司一起参加,那么便可能产生麻烦。为了使晚会的每个参加者都高兴,校长不会同时邀请某个职员和他的顶头上司。
你的任务是给出一个客人列表,使得客人的搞笑指数之和最大。

 

解题过程:

1.裸的树形dp。但是 题目说的不是很清楚,题目的本意 貌似是 校长在1~n里,且校长必须选。。

2.一开始把校长不考虑在n个人中,然后虚拟了一个节点(校长),结果就WA 5个点了。 初始得分50.

 

转载于:https://www.cnblogs.com/vb4896/p/4004878.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
请逐条解释分析下面这段程序:ops=sdpsettings('solver','cplex'); solvesdp(C,-f,ops); Pc=[double(Pc1),double(Pc2),double(Pc3)]; Pb=double(Pb); Ps_day=double(Ps_day); Pb_day=double(Pb_day); S=double(S); Pch=double(Pch); Pdis=double(Pdis); Cost_total=double(f) Price_Charge=double(Ce); Ce=sdpvar(24,1);%电价 z=binvar(24,1);%购售电状态 u=binvar(24,1);%储能状态 Pb=sdpvar(24,1);%日前购电 Pb_day=sdpvar(24,1);%实时购电 Ps_day=sdpvar(24,1);%实时售电 Pdis=sdpvar(24,1);%储能放电 Pch=sdpvar(24,1);%储能充电 Pc1=sdpvar(24,1);%一类车充电功率 Pc2=sdpvar(24,1);%二类车充电功率 Pc3=sdpvar(24,1);%三类车充电功率 S=sdpvar(24,1);%储荷容量 for t=2:24 S(t)=S(t-1)+0.9*Pch(t)-Pdis(t)/0.9; end %内层 CI=[sum(Pc1)==50*(0.9*24-9.6),sum(Pc2)==20*(0.9*24-9.6),sum(Pc3)==10*(0.9*24-9.6),Pc1>=0,Pc2>=0,Pc3>=0,Pc1<=50*3,Pc2<=20*3,Pc3<=10*3,Pc1(index1)==0,Pc2(index2)==0,Pc3(index3)==0];%电量需求约束 OI=sum(Ce.*(Pc1+Pc2+Pc3)); ops=sdpsettings('solver','gurobi','kkt.dualbounds',0); [K,details] = kkt(CI,OI,Ce,ops);%建立KKT系统,Ce为参量 %外层 CO=[lb<=Ce<=ub,mean(Ce)==0.5,Pb>=0,Ps_day<=Pdis,Pb_day>=0,Pb_day<=1000*z,Ps_day>=0,Ps_day<=1000*(1-z),Pch>=0,Pch<=1000*u,Pdis>=0,Pdis<=1000*(1-u)];%边界约束 CO=[CO,Pc1+Pc2+Pc3+Pch-Pdis==Pb+Pb_day-Ps_day];%能量平衡 CO=[CO,sum(0.9*Pch-Pdis/0.9)==0,S(24)==2500,S>=0,S<=5000];%SOC约束 OO=-(details.b'*details.dual+details.f'*details.dualeq)+sum(price_s.*Ps_day-price_day_ahead.*Pb-price_b.*Pb_day);%目标函数 optimize([K,CI,CO,boundingbox([CI,CO]),details.dual<=1],-OO) Ce=value(Ce);%电价 Pb=value(Pb);%日前购电 Pb_day=value(Pb_day);%实时购电 Ps_day=value(Ps_day);%实时购电 Pdis=value(Pdis);%储能放电 Pch=value( Pch);%储能充电 Pb_day=value(Pb_day);%实时购电 Pb_day=value(Pb_day);%实时购电 Pc1=value(Pc1);%一类车充电功率 Pc2=value(Pc2);%二类车充电功率 Pc3=value(Pc3);%三类车充电功率 S=value(S);%储荷容量 figure(1) plot(Pc1,'-*','linewidth',1.5) grid hold on plot(Pc2,'-*','linewidth',1.5) hold on plot(Pc3,'-*','linewidth',1.5) title('三类电动汽车充电功率') legend('类型1','类型2','类型3') xlabel('时间') ylabel('功率') figure(2) bar(Pdis,0.5,'linewidth',0.01) grid hold on bar(Pch,0.5,'linewidth',0.01) hold on plot(S,'-*','linewidth',1.5) axis([0.5 24
06-11

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值