bzoj 1002 轮状病毒

本文分享了一个使用高精度计算解决特定问题的过程。通过压位高精度算法实现加减运算,并记录了调试过程中的常见错误及解决方案。

这题我只是为了练高精度

然后我就写了个压位高精

结果还没有1a

深感自己的菜

第一次因为输出了中间结果

第二次是因为没有管自己打的进/借位标记

太菜了

代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstdlib>
 5 #include<algorithm>
 6 #include<cstring>
 7 #include<vector>
 8 #include<map>
 9 #include<queue>
10 #define inf 2147483611
11 #define ll long long 
12 #define MAXN 110
13 #define MOD 1000000000
14 using namespace std;
15 inline int read()
16 {
17     int x=0,f=1;
18     char ch;ch=getchar();
19     while(!isdigit(ch)) {if(ch=='-') f=-1;ch=getchar();}
20     while(isdigit(ch)) {x=x*10+ch-'0';ch=getchar();}
21     return x*f; 
22 }
23 struct bign
24 {
25     int len,val[12];
26     bign() {memset(val,0,sizeof(val));len=0;}
27     void Print()
28     {
29         printf("%d",val[len]);
30         for(int i=len-1;i>=0;i--)
31         {
32             printf("%09d",val[i]);
33         }
34     }
35     bign operator + (const bign &a) const
36     {
37         bign ans;
38         ans.len=max(len,a.len);
39         for(int i=0;i<=ans.len;i++)
40         {
41             ans.val[i]+=val[i]+a.val[i];
42             if(ans.val[i]>=MOD) {ans.val[i+1]++;ans.val[i]-=MOD;}
43         }
44         if(ans.val[ans.len+1]) ans.len++;
45         return ans;
46     }
47     bign operator - (const bign &a) const
48     {
49         bign ans;
50         ans.len=max(len,a.len);
51         for(int i=0;i<=ans.len;i++)
52         {
53             ans.val[i]+=val[i]-a.val[i];
54             if(ans.val[i]<0) {ans.val[i+1]--;ans.val[i]+=MOD;}
55         }
56         if(ans.val[ans.len]<=0) ans.len--;
57         return ans;
58     }
59 }f[MAXN];
60 int main()
61 {
62     int n=read();
63     if(n==1) printf("1");
64     f[1].val[0]=1;
65     bign k;k.val[0]=2;
66     for(int i=2;i<=n;i++)
67     {
68         f[i]=f[i-1]+f[i-1]+f[i-1]-f[i-2]+k;
69     }
70     f[n].Print();
71 }
View Code

 

转载于:https://www.cnblogs.com/yyc-jack-0920/p/7615739.html

考虑可再生能源出力不确定性的商业园区用户需求响应策略(Matlab代码实现)内容概要:本文围绕“考虑可再生能源出力不确定性的商业园区用户需求响应策略”展开,结合Matlab代码实现,研究在可再生能源(如风电、光伏)出力具有不确定性的背景下,商业园区如何制定有效的需求响应策略以优化能源调度和提升系统经济性。文中可能涉及不确定性建模(如场景生成与缩减)、优化模型构建(如随机规划、鲁棒优化)以及需求响应机制设计(如价格型、激励型),并通过Matlab仿真验证所提策略的有效性。此外,文档还列举了大量相关的电力系统、综合能源系统优化调度案例与代码资源,涵盖微电网调度、储能配置、负荷预测等多个方向,形成一个完整的科研支持体系。; 适合人群:具备一定电力系统、优化理论和Matlab编程基础的研究生、科研人员及从事能源系统规划与运行的工程技术人员。; 使用场景及目标:①学习如何建模可再生能源的不确定性并应用于需求响应优化;②掌握使用Matlab进行商业园区能源系统仿真与优化调度的方法;③复现论文结果或开展相关课题研究,提升科研效率与创新能力。; 阅读建议:建议结合文中提供的Matlab代码实例,逐步理解模型构建与求解过程,重点关注不确定性处理方法与需求响应机制的设计逻辑,同时可参考文档中列出的其他资源进行扩展学习与交叉验证。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值