24.6.30

星期一:

补cf global round26 D                                                  cf传送门

思路:把s中非a字符存下来,共m个,然后暴力检测,复杂度有点迷

代码如下:

ll n;void solve(){string s; cin >> s;n=s.size(); s=" "+s;if(count(s.begin(),s.end(),'a')==n){cout << n-1 << "\n"; return ;}vector<int>ve;int m=0;for(int i=1;i<=n;i++)if(s[i]!='a') ve.push_back(i),m++;ll ans=0;for(int i=1;i<=m;i++){      //枚举t的长度if(m%i) continue;bool if1=1;int r=n-ve[m-1],mi=1e9;for(int j=0;j<m;j++){if(j<m-i && s[ve[j]]!=s[ve[j+i]]){if1=0; break;}if(j<m-i-1 && (j+1)%i && ve[j+1]-ve[j]!=ve[j+i+1]-ve[j+i]){if1=0; break;}if((j+1)%i==0 && j!=m-1) mi=min(ve[j+1]-ve[j]-1,mi);}if(!if1) continue;for(int j=0;j<ve[0] && j<=mi;j++) ans+=min(r+1,mi-j+1);}cout << ans << "\n";
}

星期二:

补cf round954 div3 D                                          cf传送门

题意:给一串长度为n的数,在里面填 n-2个+或*号,使结果最小

思路:这里我本来想的贪心选一个二位数,但wa,其实可以枚举二位数的选择,这种情况下就没必要贪心了,直接枚举肯定比贪心更稳健

代码如下:

ll n;
string s;
void solve(){cin >> n >> s;if(n==2){if(s[0]=='0') cout << s[1] << "\n";else cout << s << "\n";return ;}if(n==3){if(s[0]=='0' || s[2]=='0'){cout << "0\n"; return ;}ll ans=0;int a1=s[0]-'0',a2=(s[1]-'0')*10+s[2]-'0';ans=min(a1+a2,a1*a2);a1=(s[0]-'0')*10+s[1]-'0',a2=s[2]-'0';ans=min({1ll*a1+a2,1ll*a1*a2,ans});cout << ans << "\n";return ;}ll tot=0,ans=1e9;for(auto i:s){if(i!='1') tot+=i-'0';if(i=='0'){cout << "0\n"; return ;}}s=" "+s;for(int i=1;i<n;i++){int num=(s[i]-'0')*10+s[i+1]-'0',ms=0;  //枚举if(s[i]!='1') ms+=s[i]-'0';if(s[i+1]!='1') ms+=s[i+1]-'0';ans=min(num+tot-ms,ans);}cout << ans << "\n";
}

星期三:

补cf round 955 div2 C  拿牌                                            cf传送门

思路:dp【i】表示拿到第 i张牌能赢的最大轮数

前缀和处理,对每个点,先和dp【i-1】取max,二分找出下一次赢的轮的拿牌范围,即 i+1到 idx,dp【idx】和 dp【i】+1 取max

代码如下:

const int N=2e6+10;
ll n;
ll a[N],dp[N];
void solve(){ll l,r; cin >> n >> l >> r;for(int i=1;i<=n;i++){cin >> a[i];a[i]+=a[i-1];dp[i]=0;}ll ans=0;for(int i=0;i<=n;i++){if(i) dp[i]=max(dp[i-1],dp[i]);int idx=lower_bound(a+1+i,a+1+n,a[i]+l)-a;if(a[idx]-a[i]>r) continue;if(idx>n){cout << ans << "\n"; return ;}dp[idx]=max(dp[i]+1,dp[idx]);ans=max({dp[i],dp[idx],ans});            //记录出现过的最大值}cout << ans << "\n";
}

补cf round954 div3 E                                           cf传送门

题意:给一数组,可以任意排序,有一操作为使其一元素+=k,问最少操作次数使其对称,不可能则输出 -1

思路:显然俩相同的数可以直接忽略,所以只考虑奇数个的数

俩数可以通过操作相等即俩数对 k的模数相等,所以按模数分类,n为奇则允许有一类是奇数个数

如果是偶数个,排序后直接对相邻数操作即可,奇数个需要枚举忽略哪个数,比较繁琐

代码如下:

const int N=2e6+10;
ll n;
ll a[N];
void solve(){ll k; cin >> n >> k;map<int,int>b;for(int i=1;i<=n;i++){cin >> a[i];b[a[i]]++;}map<int,vector<int>>mp;for(auto [x,y]:b) if(y&1) mp[x%k].push_back(x);bool if1=n&1;ll ans=0;for(auto [x,ve]:mp){if(ve.size()&1){if(!if1){cout << "-1\n"; return ;}if1=0;if(ve.size()==1) continue;}sort(ve.begin(),ve.end());ll tmp=0;if(ve.size()&1){vector<ll>ve1,ve2;ve1.push_back(0),ve2.push_back(0);for(int i=1,sz=ve.size();i<sz;i++){if(i&1){ve1.push_back(ve1.back()+(ve[i]-ve[i-1])/k);ve2.push_back(ve2.back());}else{ve2.push_back(ve2.back()+(ve[i]-ve[i-1])/k);ve1.push_back(ve1.back());}}tmp=1e18;for(int i=0,sz=ve.size();i<sz;i++){if(i&1){if(i>1) tmp=min((ve[i+1]-ve[i-1])/k+ve1[i-2]+ve2.back()-ve2[i+1],tmp);else tmp=min((ve[i+1]-ve[i-1])/k+ve1[i-2]+ve2.back()-ve2[i+1],tmp);}else{if(i) tmp=min(ve1[i-1]+ve2.back()-ve2[i],tmp);else tmp=min(ve2.back(),tmp);}}}else for(int i=0,sz=ve.size();i<sz;i+=2) tmp+=(ve[i+1]-ve[i])/k;ans+=tmp;}cout << ans << "\n";
}

星期四:

24百度之星 括号                                                     mtj传送门

思路:先看左右括号差值是否为2,

代码如下:

ll n;
void solve(){string s; cin >> s;int cntl=0,cntr=0;for(auto i:s) cntl+=i=='(',cntr+=i==')';if(abs(cntl-cntr)!=2){cout << 0; return ;}n=s.size();s=" "+s;ll ans=0;stack<int>sk;if(cntl>cntr){for(int i=n;i;i--){if(s[i]==')') sk.push(i);else{if(sk.size()>=0) ans++;if(sk.empty()) break;else sk.pop();}}}else{for(int i=1;i<=n;i++){if(s[i]=='(') sk.push(i);else{if(sk.size()>=0) ans++;if(sk.empty()) break;else sk.pop();}}}cout << ans;
}

学了下汉诺塔问题,一知半解

ll n;
void move(int n,char a,char b,char c){if(!n) return ;move(n-1,a,c,b);cout << a << " -> " << c << "\n";move(n-1,b,a,c);
}
void solve(){cin >> n;char a='A',b='B',c='C';move(n,a,b,c);
}

星期五:

补cf edu round 167 D                                          cf传送门

题意有点怪,看了两遍才懂

可以贪心,但我用multiset装金属块T了后,看了jly的dp写法,感觉很不错

思路:f【i】表示用 i块造一次可达到的最小损失,dp【i】表示用 i块开造最多能造多少次

首先使 f【i】单调不递增,因为数量越多,选择就越多,损失数只可能更少,然后dp可以线性转移

代码如下:

const int N=2e6+10;
ll n;
int a[N],f[N];
ll dp[N];
void solve(){int m; cin >> n >> m;int ma=0;for(int i=1;i<=n;i++){cin >> a[i];ma=max(a[i],ma);}for(int i=1;i<=ma;i++) f[i]=1e9;for(int i=1;i<=n;i++){int b; cin >> b;f[a[i]]=min(a[i]-b,f[a[i]]);}for(int i=2;i<=ma;i++) f[i]=min(f[i-1],f[i]);for(int i=1;i<=ma;i++) if(f[i]<=i) dp[i]=dp[i-f[i]]+1;ll ans=0;while(m--){int c; cin >> c;if(c>ma){              //数量大于最大,就先处理到最大int ti=(c-ma)/f[ma]; if((c-ma)%f[ma]) ti++;c-=f[ma]*ti;ans+=ti;}ans+=dp[c];}cout << ans*2;
}

牛客小白月赛97 C                                          牛客传送门

思路:翻译下就是,有 num个不同的数,单调递增地连续放置 n个的方案数

暴力转移 n^3,可以用前缀和优化到 n^2

因为最后 ans忘记取模了,白wa一发,所以记录下

代码如下:

ll n;
ll x;
ll dp[1010][1010];
void solve(){cin >> n >> x;vector<int>ve;ve.push_back(0);ll num=0;for(int i=1;i<=x;i++){if(i*i<=x) ve.push_back(i),num++;else break;}for(int i=1;i<=num;i++) dp[1][i]=1;for(int i=2;i<=n;i++){for(int j=i;j<=num;j++)dp[i][j]+=dp[i-1][j-1];for(int j=i+1;j<=num;j++) dp[i][j]+=dp[i][j-1],dp[i][j]%=mod;}ll ans=0;for(int i=n;i<=num;i++) ans+=dp[n][i],ans%=mod;cout << ans;
}

24百度之星 小度的01串                                            mtj传送门

思路:手操一下能发现合并的规律,和前一段长度的奇偶性有关

其余部分都很常规,第一发update里的懒标记没写为^=1,wa了一发

代码如下:

ll n;
string s;
struct seg_Tree{
#define lc p<<1
#define rc p<<1|1struct nod{int l,r;int op1,op0;   //改为10串的和改为01串的操作次数int tag;}t[N<<2];int ql,qr;nod merge(nod a,nod b){nod res;res.l=a.l,res.r=b.r;if((a.r-a.l+1)&1){res.op1=a.op1+b.op0;res.op0=a.op0+b.op1;}else{res.op1=a.op1+b.op1;res.op0=a.op0+b.op0;}return res;}void pushup(int p){t[p]=merge(t[lc],t[rc]);}void pushdn(int p){if(!t[p].tag) return ;swap(t[lc].op1,t[lc].op0);swap(t[rc].op1,t[rc].op0);t[lc].tag^=t[p].tag;t[rc].tag^=t[p].tag;t[p].tag=0;}void bd(int p,int l,int r){t[p]={l,r,0,0,0};if(l==r){t[p].op0=s[l]=='1';t[p].op1=s[l]=='0';return ;}int mid=l+r>>1;bd(lc,l,mid);bd(rc,mid+1,r);pushup(p);}void update(int p){if(ql<=t[p].l && qr>=t[p].r){swap(t[p].op1,t[p].op0);t[p].tag^=1;return ;}int mid=t[p].l+t[p].r>>1;pushdn(p);if(ql<=mid) update(lc);if(qr>mid) update(rc);pushup(p);}nod query(int p){if(ql<=t[p].l && qr>=t[p].r) return t[p];int mid=t[p].l+t[p].r>>1;pushdn(p);if(ql>mid) return query(rc);if(qr<=mid) return query(lc);return merge(query(lc),query(rc));}void updt(int l,int r){ql=l,qr=r;update(1);}int ask(int l,int r){ql=l,qr=r;nod ans=query(1);return min(ans.op0,ans.op1);}
}tr;
void solve(){int q; cin >> n >> q;cin >> s; s=" "+s;tr.bd(1,1,n);while(q--){int op,l,r; cin >> op >> l >> r;if(op==1) tr.updt(l,r);else cout << tr.ask(l,r) << "\n";}
}

星期六:

补牛客小白月赛97 D                                          牛客传送门

被c的计算式子诈骗了,其实p的任意次幂%(p-1)的结果都是1,所以c其实就等于a

思路:注意到n和m在10以内,p不大,对(p-1)的模数也在1e4以内,可以直接暴力bfs,vi数组标记出现过的状态(即坐标和对(p-1)的模数,出现符合条件状态就结束,bfs完毕就输出-1

还有一个特判需要注意,如果一开始就符合条件,输出0(wa了一发

代码如下:

ll n;
int dx[]={-1,1,0,0};
int dy[]={0,0,-1,1};
int a[11][11];
bool vi[11][11][10004];
struct nod{int x,y;ll sum,ti;
};
void solve(){int m,p; cin >> n >> m >> p;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)cin >> a[i][j];}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)int b; cin >> b;}if(n==1 && m==1 && p==2){cout << 0; return ;}queue<nod>qu;qu.push({1,1,a[1][1]%(p-1),0});vi[1][1][a[1][1]%(p-1)]=1;while(!qu.empty()){nod t=qu.front(); qu.pop();for(int i=0;i<4;i++){int x=t.x+dx[i],y=t.y+dy[i];ll sum=(t.sum+a[x][y])%(p-1);if(x<1 || x>n || y<1 || y>m || vi[x][y][sum]) continue;if(!sum && x==n && y==m){cout << t.ti+1; return ;}qu.push({x,y,sum,t.ti+1});vi[x][y][sum]=1;}}cout << -1;
}

在蓝桥杯上打了个不知道什么比赛,随便贴个线段树题      传送门

学了线段树的后果就是老想着用线段树

思路:线段树暴力维护,因为身高最高到1e9,所以动态开点,找领操用二分,操作都很常规

又因为 fnd的 k没开ll,wa了一发。

代码如下:

const int N=3e5+10,M=210;
ll n;
const int MAXN=1e9+10;
struct d_Seg_Tree{
#define lc(x) t[x].ch[0]
#define rc(x) t[x].ch[1]struct nod{int ch[2];            //左右儿子节点的编号ll sum;}t[N*55];int root;ll tot;int ql,qr,qv;void pushup(int p){t[p].sum=t[lc(p)].sum+t[rc(p)].sum;}void update(int &p,int l,int r){if(!p) p=++tot;                          //新建节点if(ql<=l && qr>=r){t[p].sum+=qv;return ;}int mid=l+r>>1;if(ql<=mid) update(lc(p),l,mid);if(qr>mid) update(rc(p),mid+1,r);pushup(p);}void updt(int l,int r,int v){ql=l,qr=r;qv=v;update(root,1,MAXN);}int fnd(int &p,int l,int r,ll k){if(!p) return 0;if(l==r) return l;int mid=l+r>>1;if(t[lc(p)].sum>=k) return fnd(lc(p),l,mid,k);else return fnd(rc(p),mid+1,r,k-t[lc(p)].sum);}
}tr;
void solve(){cin >> n;ll num=0;for(int i=1;i<=n;i++){int v,a; cin >> v >> a;num+=a;tr.updt(v,v,a);ll ld=num/2; if(num&1) ld++;cout << tr.fnd(tr.root,1,MAXN,ld) << "\n";}
}

周日:

23年百度之星 dp                                                       mtj传送门

dp【i】表示消耗 i蓝最大的A*B值,dpc【i】表示消耗 i蓝最大的100+C值

思路:题意有点复杂,看似伤害和ABCD的值都相关,要考虑四个,实际上经过处理后只需考虑两个值,即A*B和C-d(C为原题意的100+C,这样就能线性即3e3地处理询问,但复杂度仍是9e8,对于1s来说是不够的

然而只需加上一个vi数组来记录出现过的答案,只消这么一个优化,就能从T 2~5个点变为200ms跑完,这让我明白在复杂度很危险的情况下,任何能想到的优化都是有必要的

代码如下:

const int N=3e5+10;
ll n;
vector<PII>ve[4];
ll dpa[3030],dpb[3030],dp[3030];
ll dpc[3030];
ll vi[N];
void solve(){int m,q; cin >> n >> m >> q;for(int i=0;i<=m;i++) dpa[i]=dpb[i]=dpc[i]=100;for(int i=1;i<=n;i++){int c,tp,w; cin >> c >> tp >> w;ve[tp].push_back({c,w});}for(auto [c,w]:ve[1]){  //Afor(int j=m;j>=c;j--)dpa[j]=max(dpa[j-c]+w,dpa[j]);}for(auto [c,w]:ve[2]){  //Bfor(int j=m;j>=c;j--)dpb[j]=max(dpb[j-c]+w,dpb[j]);}for(int i=0;i<=m;i++){for(int j=0;j<=i;j++){   //A * Bint k=i-j;dp[i]=max(dpa[j]*dpb[k],dp[i]);}}for(auto [c,w]:ve[3]){  //Cfor(int j=m;j>=c;j--)dpc[j]=max(dpc[j-c]+w,dpc[j]);}memset(vi,-1,sizeof vi);while(q--){int d; cin >> d;if(vi[d]!=-1){cout << vi[d] << "\n"; continue;}if(dpc[m]+100<=d){cout << "0\n",vi[d]=0; continue;}ll ans=0;for(int i=0;i<=m;i++){int j=m-i;ans=max(dp[i]*(dpc[j]-d),ans);}cout << ans << "\n";vi[d]=ans;}
}

百度之星第三场:那道字符串哈希,毁了我的国赛梦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/41849.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于若依的文件上传、下载

基于若依实现文件上传、下载 文章目录 基于若依实现文件上传、下载1、前端实现-文件上传1.1 通用上传分析1.2 修改实现上传接口 2、后端实现-文件上传3、后端实现-文件下载4、前端实现-文件下载 官网其实也写了&#xff0c;但是我是自己改造封装了一下&#xff0c;再次迈向全栈…

快手大模型首次集体亮相,用AI重塑内容与商业生态

7月6日&#xff0c;在2024世界人工智能大会期间&#xff0c;快手举办了以“新AI新应用新生态”为主题的大模型论坛&#xff0c;会上&#xff0c;快手大模型首次集体亮相&#xff0c;视频生成大模型可灵、图像生成大模型可图等产品的多项新功能正式发布。 继图生视频、视频续写…

Photoshop属于什么软件 Photoshop缓存文件清理 Mac清理PS缓存 苹果电脑ps内存满了怎么清理

对于所有热爱使用Adobe Photoshop的Mac用户来说&#xff0c;这款软件无疑是创意工作的强大助手。但是&#xff0c;随着时间的积累&#xff0c;你可能会发现Photoshop开始变得有点慢&#xff0c;反应迟钝。这通常是因为Photoshop的缓存和临时文件堆积&#xff0c;占用了宝贵的系…

干货 | 2024云安全责任共担模型(免费下载)

以上是资料简介和目录&#xff0c;如需下载&#xff0c;请前往星球获取&#xff1a;

基于Java技术的人事管理系统

你好&#xff0c;我是专注于计算机科学领域的小野。如果你对人事管理系统感兴趣或有相关需求&#xff0c;欢迎私信交流。 开发语言&#xff1a; Java 数据库&#xff1a; MySQL 技术&#xff1a; B/S模式、Java技术、SpringBoot 工具&#xff1a; Eclipse、MySQL、浏览…

第四届BPAA算法大赛成功举办!共研算法未来

大家好&#xff0c;我是herosunly。985院校硕士毕业&#xff0c;现担任算法研究员一职&#xff0c;热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名&#xff0c;CCF比赛第二名&#xff0c;科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的…

kubernetes集群部署:node节点部署和cri-docker运行时安装(四)

安装前准备 同《kubernetes集群部署&#xff1a;环境准备及master节点部署&#xff08;二&#xff09;》 安装cri-docker 在 Kubernetes 1.20 版本之前&#xff0c;Docker 是 Kubernetes 默认的容器运行时。然而&#xff0c;Kubernetes 社区决定在 Kubernetes 1.20 及以后的…

【C++】开源:量化金融计算库QuantLib配置与使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍量化交易库QuantLib配置与使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#…

【JVM基础篇】Java垃圾回收器介绍

垃圾回收器&#xff08;垃圾回收算法实现&#xff09; 垃圾回收器是垃圾回收算法的具体实现。由于垃圾回收器分为年轻代和老年代&#xff0c;除了G1&#xff08;既能管控新生代&#xff0c;也可以管控老年代&#xff09;之外&#xff0c;新生代、老年代的垃圾回收器必须按照ho…

Redis中list类型操作命令(操作演示、命令语法、返回值、时间复杂度、注意事项等)

文章目录 lpush 命令lrange 命令lpushx 命令rpush 命令rpushx 命令lpop 命令rpop 命令lindex 命令linsert 命令llen 命令lrem 命令ltrim 命令lset 命令blpop 和 brpop lpush 命令 从左侧向列表中插入指定的元素 语法&#xff1a;lpush key value [value……] 时间复杂度&#…

【C语言】自定义类型:联合和枚举

前言 前面我们学习了一种自定义类型&#xff0c;结构体&#xff0c;现在我们学习另外两种自定义类型&#xff0c;联合 和 枚举。 目录 一、联合体 1. 联合体类型的声明 2. 联合体的特点 3. 相同成员联合体和结构体对比 4. 联合体大小的计算 5. 用联合体判断当前机…

C语言实现顺序表字符型数据排序

实现直接插入、冒泡、直接选择排序算法。 #include <stdio.h> #include <stdlib.h>typedef char InfoType;#define n 10 //假设的文件长度&#xff0c;即待排序的记录数目 typedef char KeyType; //假设的关键字类型 typedef struct { //记录类型KeyType…

vue3+vite搭建第一个cesium项目详细步骤及环境配置(附源码)

文章目录 1.创建vuevite项目2.安装 Cesium2.1 安装cesium2.2 安装vite-plugin-cesium插件&#xff08;非必选&#xff09;2.3 新建组件页面map.vue2.4 加载地图 3.完成效果图 1.创建vuevite项目 打开cmd窗口执行以下命令&#xff1a;cesium-vue-app是你的项目名称 npm create…

【LeetCode:3101. 交替子数组计数 + 滑动窗口 + 数学公式】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

转盘输入法-键盘加鼠标版本

序 转盘输入法&#xff0c;给你的聊天加点新意。它不用常见的九宫格或全键盘&#xff0c;而是把字母摆在圆盘上&#xff0c;一滑一滑&#xff0c;字就出来了&#xff0c;新鲜又直接。 键盘加鼠标版本GIF演示 演示软件下载 转盘输入法PC演示版本EXE下载https://download.csdn…

Unity编辑器扩展之Inspector面板扩展

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! Unity编辑器扩展之Inspector面板扩展 TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不断探索 TechX —— 心探索、心进取&#xff…

阿里云服务器配置、搭建(针对Spring boot和MySQL项目)

这是一篇极其详细且痛苦的文章&#xff0c;还是在两位后端的大佬手把手教导下、以及我找遍全网所有资料、问了N遍AI、甚至直接申请阿里云工单一对一询问客服一整天、连续清空再上传反复30多次整个项目jar包......总结出来的终极要人命踩坑的问题总结 一、首先购买服务器 其实不…

磁盘分区工具 -- 傲梅分区助手 v10.4.1 技术员版

软件简介 傲梅分区助手是一款功能强大的磁盘分区工具&#xff0c;它专为Windows系统设计&#xff0c;帮助用户更高效地管理他们的硬盘。该软件支持多种分区操作&#xff0c;包括创建、格式化、调整大小、移动、合并和分割分区。此外&#xff0c;它还提供了复制硬盘和分区的功能…

06-6.4.4 拓扑排序

&#x1f44b; Hi, I’m Beast Cheng &#x1f440; I’m interested in photography, hiking, landscape… &#x1f331; I’m currently learning python, javascript, kotlin… &#x1f4eb; How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…

java基础:方法

一、方法 1、Java方法是语句的集合&#xff0c;它们在一起执行一个功能。 方法是解决一类问题的步骤的有序集合方法包含于类或对象中方法在程序中被创建&#xff0c;在其他地方被引用 2、设计方法的原则&#xff1a;方法的本意是功能块&#xff0c;就是实现某个功能的语句块…