寒假三

寒假三
1
double k=t-x*6/1000;
1 *6/1000 必错 0.006才对
2 double k才行 x=t-x
6/1000;

2
cin>>n;
sets;
s.insert(n);//特判第一个点
if(s.count(x)!=0)break; //先判断在操作
s.insert(x);
cout<<cnt+1;下一次出现

3

对一段连续的区间操作 最小操作次数变为 hk序列

a[i]>a[i-1]就ans+=差值 非常明显
i到n a[i-1]=a[0]=0 9 6 8 5 9 0 2 0=11

4 i=1 j=m i++,j++
一定要同时 ++类似于 来回走最小值模型 (滑动窗口)
for(int i=1,j=m;i<=n&&j<=n;i++,j++){
ans=min(ans,abs(a[j]-a[i])+min(abs(a[i]),abs(a[j])));
}
5 非常经典的dfs
if(now>n){
return ;
}
if(flag3&&flag5&&flag7){
ans++;
// cout<<now<<endl;
}
dfs(now10+3,1,flag5,flag7);
dfs(now
10+5,flag3,1,flag7);
dfs(now*10+7,flag3,flag5,1);
至少出现7 5 3全都一次
dfs(0,0,0,0) 不然开始就是从10开始

6
五叉树 dfs 不断递归计算 int dfs 讨论边界
f[0]=p[0]=1; 节点规模
f[i]=f[i-1]2+3; BPB+上一层规模2
p[i]=p[i-1]2+1; P+上一层规模2
讨论五种边界情况
if(x<=f[now-1])return p[now-1]+dfs(now-1,x-f[now-1])+1; 不对
if(x<=f[now-1])return p[now-1]+dfs(now-1,x)+1;
很多搜索的细节
只负责传参 然后递归时候处理?我说的对吗
走不满 左右子树 就一直dfs 知道return p[now]或者p[now-1]?
从左到右 具有对称性 49到B+48 48左子树取满 右子树没有取满
48到B+47 递归到取满
会有左子树48层 +右子树1层的情况,我的理解

posted @ 2024-05-17 15:55  爱吃湫鰍的喵酱  阅读(16)  评论(0)    收藏  举报