Codeforces Round #839 (Div. 3)

news2024/11/24 23:00:30

A. A+B?

题意:

t组测试每组给出以a+b的形式给出算式,求a+b的值。(a,b都是0~9)

代码:

t=int(input())
for i in range(t):
    s=input()
    print(eval(s))

B. Matrix Rotation

题意:

t组测试每组给一个2*2的矩阵,你可以把矩阵顺时针旋转90度(可以做多次)。问能否使得矩阵满足对于每一行和每一列第一个元素都小于第二个元素。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include<bitset>
#include<list> 
#include <algorithm>
#define pii pair<int,int>
#define se second
#define fi first
#define rep(i,a,b) for (int i=a;i<b;++i)
#define per(i,a,b) for (int i=a;i>b;--i)
#define mid ((l+r)>>1)
#define lson(root) ((root)<<1)
#define rson(root) (((root)<<1)|1)
#define MEM(a,x) memset(a,x,sizeof(a))
#define M(x) ((x)%MOD)
#define endl '\n'
typedef long long LL;
typedef unsigned long long ULL;
using namespace std;
const LL INF=0x3f3f3f3f;
const LL MOD=1e9+7;
const int N=3003;
const int M=3003;

void solve(){
    int flag=0;
    int a,b,c,d;
    cin>>a>>b>>c>>d;

    if (a<b && c<d && a<c && b<d) flag=1;
    if (c<a && d<b && c<d && a<b) flag=1;
    if (d<c && b<a && d<b && c<a) flag=1;
    if (b<d && a<c && b<a && d<c) flag=1;

    if (flag) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;

    return ;
}

int main(){
    #ifndef ONLINE_JUDGE
        freopen("title.in","r",stdin);
        freopen("title.out","w",stdout);
    #endif
    // ios::sync_with_stdio(false);
    // cin.tie(0);cout.tie(0);
    int _=1;
    cin>>_;
    // cout<<_<<endl;
    // scanf("%d",&_);
    while (_--) solve();
    // rep(i,1,_+1){
    //     cout<<"Case "<<i<<": ";
    //     solve();
    // }
    return 0;
}   

C. Different Differences

题意:

t(1≤t≤819)组测试每组给定k和n (2≤k≤n≤40),构造一个含有k个元素的严格递增序列a,1<=ai<=n,使得序列[a2−a1,a3−a2,…,ak−ak−1]所包含不同数的个数最多。

思路:

就是要求相邻数距离的不同个数最大。如果n=k,只能构造1,2,3...n,相邻数之间的距离都为1;如果n-k=1,就可以把一个距离改为2,得到不同个数多一个;若n-k=3,把一个距离改为2,一个改为3,得到不同个数为3。由此类推可知如果n-k刚好是t*(t+1)/2的形式,可以得到t+1个不同的个数。

首先找出t*(t+1)<=2*(n-k)最大的t,说明最多可以修改多少个距离。先构造前t+1个数,即1,3,6,10...i*(i+1)/2。这样保证达到最大不同个数了,后面就递增构造就可以了。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include<bitset>
#include<list> 
#include <algorithm>
#define pii pair<int,int>
#define se second
#define fi first
#define rep(i,a,b) for (int i=a;i<b;++i)
#define per(i,a,b) for (int i=a;i>b;--i)
#define mid ((l+r)>>1)
#define lson(root) ((root)<<1)
#define rson(root) (((root)<<1)|1)
#define MEM(a,x) memset(a,x,sizeof(a))
#define M(x) ((x)%MOD)
#define endl '\n'
typedef long long LL;
typedef unsigned long long ULL;
using namespace std;
const LL INF=0x3f3f3f3f;
const LL MOD=1e9+7;
const int N=45;
const int M=3003;
int a[45];
void solve(){
    int k,n;
    cin>>k>>n;
    int t=n-k,d=0;
	while(d*(d+1)<=2*t) ++d;
	rep(i,1,d+1) a[i]=i*(i+1)/2;
	rep(i,d+1,k+1) a[i]=a[i-1]+1;
	rep(i,1,k+1) cout<<a[i]<<" ";
	cout<<endl;
    return ;
}
int main(){
    #ifndef ONLINE_JUDGE
        freopen("title.in","r",stdin);
        freopen("title.out","w",stdout);
    #endif
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int _=1;
    cin>>_;
    // cout<<_<<endl;
    // scanf("%d",&_);
    while (_--) solve();
    // rep(i,1,_+1){
    //     cout<<"Case "<<i<<": ";
    //     solve();
    // }
    return 0;
}

D. Absolute Sorting

题意:

t组(1≤t≤2⋅10^4)测试,每组给定长度为n(2≤n≤2⋅10^5)的数组a(1≤ai≤10 ^8)。只能进行一次操作,选一个数,把每个ai变成|ai-x|。问x是多少的时候可以将a排好序(即a1≤a2≤⋯≤an)。不存在输出-1.

思路:

考虑序列中的逆序对ai>aj (i<j),考虑x至少为多少才能使得ai>=aj。此时x一定会比aj大,如果x大于ai显然满足,我们考虑x<=ai的情况,去掉绝对值就是:

a_{i}-x<=x-a_{j}

即:x\geq \left \lceil \frac{a_{i}+a_{j}}{2} \right \rceil

对于一个所有的逆序对都需要满足上式,所有求出ai+aj最大的逆序对就是x的最小值,用归并就可以做。求出后在求出操作后的a检查一遍合不合法就可以了。

为什么x要尽量选小的?因为ai<aj (i<j),x不能超过\left \lceil \frac{a_{i}+a_{j}}{2} \right \rceil,否则就变成逆序对了。所以越小越好。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include<bitset>
#include<list> 
#include <algorithm>
#define pii pair<int,int>
#define pll pair<LL,LL>
#define pil pair<int,LL>
#define pli pair<LL,int>
#define pdd pair<db,db>
#define se second 
#define fi first
#define endl '\n'
#define rep(i,a,b) for (register int i=a;i<b;++i)
#define per(i,a,b) for (register int i=a;i>b;--i)
#define MEM(a,x) memset(a,x,sizeof(a))
#define M(x) ((x)%MOD)
#define db double
#define eps 1e-9
typedef long long LL;
typedef unsigned long long ULL;
using namespace std;
const int MOD=1e9+7;
const int N=2e5+10;
int a[N],b[N],c[N],mx;
void merge(int l,int r)
{
	if(l>=r) return;
	int mid=l+r>>1;
	merge(l,mid),merge(mid+1,r);
	int i=l,j=mid+1;
	rep(k,l,r+1)
		if(j>r||i<=mid&&c[i]<=c[j]) b[k]=c[i++];
		else{
			if(mid-i+1>0) mx=max(mx,(c[mid]+c[j])/2+(c[mid]+c[j])%2);
			b[k]=c[j++];
		}
	rep(k,l,r+1) c[k]=b[k];
}
void solve()
{
	int n;
	cin>>n;
	rep(i,0,n) cin>>a[i],c[i]=a[i];
	mx=0;
	merge(0,n-1);
	if(mx==0){
		cout<<0<<endl;
		return;
	}
	rep(i,0,n) a[i]=abs(a[i]-mx);
	rep(i,1,n){
		if(a[i-1]>a[i]){
			cout<<-1<<endl;
			return;
		}
	}
	cout<<mx<<endl;
}
int main()
{
	#ifndef ONLINE_JUDGE
		freopen("title.in","r",stdin);
		freopen("title.out","w",stdout);
	#endif
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int _=1;
	cin>>_; 
	while(_--){
		solve();
	}
	return 0;
}

E. Permutation Game

题意:

给定一个n的排列,两个人玩游戏,第一个人使排列变成正序获胜,第二个人使排列变成倒序获胜,初始所有数都是红色,且保证没有排好的情况。每一轮一个人可以:1.把所有蓝色位置上的数字重新排列。2.选择一个红色的把它改成蓝色。3.什么都不做。

输出获胜情况。

思路:

如果一个玩家要把序列排成有序,必须要把不正确的位置的数都改成蓝色,其他数改不改都无所谓,只要是蓝色的数就可以任意交换次序。问题转换成两个人谁先把自己需要改成蓝色的数选完。

对于一个玩家来说,他会选择一个位置不正确的且为红色的把它改为蓝色,如果存在一些位置是另外一个玩家也希望修改的,最优策略必然是尽量先避免选择这种公共的位置。因为这种位置可以等着另外一个玩家去修改,而非公共位置只能自己修改。

统计玩家1和玩家2需要修改的数目和公共修改的数目,按照这个策略模拟一遍即可。也可以推公式直接判断,但没必要。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include<bitset>
#include<list> 
#include <algorithm>
#define pii pair<int,int>
#define pll pair<LL,LL>
#define pil pair<int,LL>
#define pli pair<LL,int>
#define pdd pair<db,db>
#define se second 
#define fi first
#define endl '\n'
#define rep(i,a,b) for (register int i=a;i<b;++i)
#define per(i,a,b) for (register int i=a;i>b;--i)
#define MEM(a,x) memset(a,x,sizeof(a))
#define M(x) ((x)%MOD)
#define db double
#define eps 1e-9
typedef long long LL;
typedef unsigned long long ULL;
using namespace std;
const int MOD=1e9+7;
const int N=5e5+10;
int a[N];
void solve()
{
	int n,cnt1=0,cnt2=0,cnt=0;
	cin>>n;
	rep(i,1,n+1){
		cin>>a[i];
		if(a[i]!=i) ++cnt1;
		if(a[i]!=n-i+1) ++cnt2;
		if(a[i]!=i&&a[i]!=n-i+1) ++cnt;
	}
	for(int i=1;;++i){
		if(cnt1==0&&cnt2==0){
			cout<<"Tie"<<endl;
			return;
		}
		if(cnt1==0){
			cout<<"First"<<endl;
			return;
		}
		if(cnt2==0){
			cout<<"Second"<<endl;
			return;
		}
		if(i&1){
			if(cnt1>cnt) --cnt1;
			else --cnt1,--cnt2,--cnt;
		}else{
			if(cnt2>cnt) --cnt2;
			else --cnt1,--cnt2,--cnt;
		}
	}
}
int main()
{
	#ifndef ONLINE_JUDGE
		freopen("title.in","r",stdin);
		freopen("title.out","w",stdout);
	#endif
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int _=1;
	cin>>_; 
	while(_--){
		solve();
	}
	return 0;
}

F. Copy of a Copy of a Copy

题意:

一个n*m的0-1矩阵,每一次操作可以:1.选一个(x,y),它的上下左右都和它相反,且不为边界,可以把(x,y)改为相反的。2.复杂当前的图像。

给定k个复制出来的图和原图(顺序不确定),需要还原操作过程,确定原图是哪一个以及每一步复制的k是哪一个。

3≤n,m≤30; 0≤k≤100

思路:

如果对一个图进行了操作,这个图的合法操作数一定是减少的。统计所有图的合法操作个数,按照降序排列,第一个图作为原图,后面的图和前面一个做比较,不相同的坐标就是修改的坐标。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include<bitset>
#include<list> 
#include <algorithm>
#define pii pair<int,int>
#define pll pair<LL,LL>
#define pil pair<int,LL>
#define pli pair<LL,int>
#define pdd pair<db,db>
#define pip pair<int,pii>
#define se second 
#define fi first
#define endl '\n'
#define rep(i,a,b) for (register int i=a;i<b;++i)
#define per(i,a,b) for (register int i=a;i>b;--i)
#define MEM(a,x) memset(a,x,sizeof(a))
#define M(x) ((x)%MOD)
#define db double
#define eps 1e-9
typedef long long LL;
typedef unsigned long long ULL;
using namespace std;
const int MOD=1e9+7;
const int N=35;
int n,m,k;
struct node{
	string s[N];
	int id,cnt;
}g[110];
int get_cnt(int u)
{
	int res=0;
	rep(i,2,n)
	rep(j,2,m){
		int x=g[u].s[i][j]-'0';
		if(g[u].s[i+1][j]-'0'==1-x&&g[u].s[i-1][j]-'0'==1-x&&g[u].s[i][j-1]-'0'==1-x&&g[u].s[i][j+1]-'0'==1-x) ++res;
	}
	return res;
}
bool cmp(node a,node b)
{
	return a.cnt>b.cnt;
}
void solve()
{
	cin>>n>>m>>k;
	rep(i,1,k+2){
		g[i].id=i;
		rep(j,1,n+1) cin>>g[i].s[j],g[i].s[j]='0'+g[i].s[j];
		g[i].cnt=get_cnt(i);
	}
	sort(g+1,g+2+k,cmp);
	cout<<g[1].id<<endl;
	vector<pip>v;
	rep(i,2,k+2){
		if(g[i].cnt!=g[i-1].cnt) rep(j,1,n+1) rep(z,1,m+1) if(g[i-1].s[j][z]!=g[i].s[j][z]) v.push_back({1,{j,z}});
		v.push_back({2,{g[i].id,0}});
	}
	cout<<v.size()<<endl;
	for(auto it:v){
		pii t=it.se;
		if(it.fi==1) cout<<1<<" "<<t.fi<<" "<<t.se<<endl;
		else cout<<2<<" "<<t.fi<<endl;
	}
}
int main()
{
//	#ifndef ONLINE_JUDGE
//		freopen("title.in","r",stdin);
//		freopen("title.out","w",stdout);
//	#endif
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int _=1;
	//cin>>_; 
	while(_--){
		solve();
	}
	return 0;
}

G. Gaining Rating

题意:

t(1≤t≤10^4)组测试,每组给定长度为n的数组a,初始分数x,求涨到y最小需要多少次比赛。每一次都可以选一个ai,如果当前分数大于等于ai就会加一分,否则减一分。但ai不会变,必须平均的选择,即不能存在一个人比另一个人多打两次比赛。

思路:

从小到大排序,每一轮次都从小的开始选,然后就变成一道模拟题了。

首先看一下当前轮最多能打败多少个对手,假如能打败前i-1个,第i个x<a[i]了,如果还没有到y,后面的会先掉分。判断一下之后每一次到i分数的净增量为2*(i-1)-n,如果为负值就不可能超过y了,否则计算经过多少轮之后x>=a[i],然后继续判断。注意y有小于a[i]的情况。

因为i指针只会向后移动,所以复杂度为O(n)。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include<bitset>
#include<list> 
#include <algorithm>
#define pii pair<int,int>
#define pll pair<LL,LL>
#define pil pair<int,LL>
#define pli pair<LL,int>
#define pdd pair<db,db>
#define se second 
#define fi first
#define endl '\n'
#define rep(i,a,b) for (register int i=a;i<b;++i)
#define per(i,a,b) for (register int i=a;i>b;--i)
#define MEM(a,x) memset(a,x,sizeof(a))
#define M(x) ((x)%MOD)
#define db double
#define eps 1e-9
typedef long long LL;
typedef unsigned long long ULL;
using namespace std;
const int MOD=1e9+7;
const int N=2e5+10;
LL a[N];
void solve()
{
	int n;
	LL x,y;
	cin>>n>>x>>y;
	rep(i,1,n+1) cin>>a[i];
	sort(a+1,a+n+1);
	LL cnt=0;
	int i=1;
	while(1){
		while(i<=n&&x>=a[i]){
			++i,++x,++cnt;
			if(x==y){
				cout<<cnt<<endl;
				return;
			}
		}
		if(i==n+1){
			cout<<cnt+y-x<<endl;
			return;
		}
		if(n-i+1>=i-1){
			cout<<-1<<endl;
			return;
		}
		if(y<=a[i]){
			LL len=2*(i-1)-n,d=y-x;
			LL tm=d/len;
			cnt+=tm*n;
			if(d%len==0) cout<<cnt<<endl;
			else cout<<cnt+d-tm*len+2*(n-i+1)<<endl;
			return;
		}
		LL len=2*(i-1)-n,d=a[i]-x;
		LL tm=d/len;
		if(d%len) ++tm;
		x+=tm*len,cnt+=n*tm;
		if(x>=y){
			cnt-=x-y;
			cout<<cnt<<endl;
			return;
		}
	}
}
int main()
{
	#ifndef ONLINE_JUDGE
		freopen("title.in","r",stdin);
		freopen("title.out","w",stdout);
	#endif
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int _=1;
	cin>>_; 
	while(_--){
		solve();
	}
	return 0;
}

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

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

相关文章

NoSQL数据库原理与应用综合项目——Redis篇

NoSQL数据库原理与应用综合项目——Redis篇 文章目录NoSQL数据库原理与应用综合项目——Redis篇0、 写在前面1、本地数据或HDFS数据导入到Redis2、Redis数据库表操作2.1 Java API 连接Redis2.2 查询数据2.3 插入数据2.4 修改数据2.5 删除数据3、Windows远程连接Redis(Linux)4、…

谁说女生不可以学编程?维密超模放弃年薪千万,一心只当程序媛

说到IT行业&#xff0c;大家第一反应应该是程序员 谁说女生不可以学编程&#xff1f;维密超模放弃年薪千万&#xff0c;一心只当程序媛 感觉一说起IT工作者 大家都会想到一个男性的形象 但是其实 有一批脸美、胸大、腰细、腿长、还都热爱编程的妹纸正在加入你们的行列&#…

(附源码)Springboot宠物领养系统 毕业设计 241104

Springboot宠物领养系统 摘 要 如今&#xff0c;随着人们生活水平不断提高&#xff0c;人们的生活在物质满足的基础上&#xff0c;更多的人将生活的重点放在追求精神享受的过程中。于此同时&#xff0c;Internet铺天盖地的普及&#xff0c;使得这样的人纷纷通过Internet的方式去…

springboot 3.0 工程建立

springboot 3.0 工程建立 脚手架搭建 进入spring官网提供的https://start.spring.io/进行脚手架搭建。 选择 Maven进行包管理&#xff0c;语言选择JAVA&#xff0c;Spring Boot 版本选择3.0.0&#xff0c;JDK 版本选择17。并在右侧选择自己希望的依赖。结果如下图&#xff1…

基于SpringMVC+Hibernate+Layui城市智能消防决策平台设计

开发软件&#xff1a;Eclipse,可以用idea,mysql数据库 开发技术&#xff1a;SpringMVC,Spring,Hibernate,jquery,layui 本系统的功能主要分为两个角色&#xff0c;其中用户的功能有&#xff1a;登陆注册&#xff0c;查看火灾案例&#xff0c;火警报警&#xff0c;查看自己的报警…

【产品经理必备文档】述职报告/年终总结汇报ppt模板

今天和大家免费分享产品必备文档模板——产品经理述职文档&#xff08;年终总结汇报&#xff09;的ppt模板~~~ 【文档下载】 这个ppt模板可以在下方小程序里免费下载哦 【编写教程】 个人工作年终总结一般分成4部门&#xff1a;个人岗位职责、工作完成情况、年度经验总结、 1…

北语、北外2022年12月公派英语统考的通知

近日&#xff0c;北语和北外均发布了12月29日国家公派英语高级班结业统考的通知。与以往不同的是&#xff1a;为无法参加12月29日统考的学员增加一次考试机会&#xff0c;时间定于2023年2月25日&#xff0c;但需要提前报名。具体报名时间及方式参见两校的通知&#xff0c;知识人…

17_ 数据库 _ MySQL主从同步配置

文章目录一、主从同步的定义二、使用主从同步的好处三、主从同步的机制四、配置主从同步的基本步骤五、详细配置主从同步的方法5.1 备份主服务器原有数据到从服务器5.1.1 主服务器Ubuntu上进行备份5.1.2 在从服务器Windows上进行数据还原5.2 配置主服务器master&#xff08;Ubu…

单商户商城系统功能拆解48—应用中心—消息通知

单商户商城系统&#xff0c;也称为B2C自营电商模式单店商城系统。可以快速帮助个人、机构和企业搭建自己的私域交易线上商城。 单商户商城系统完美契合私域流量变现闭环交易使用。通常拥有丰富的营销玩法&#xff0c;例如拼团&#xff0c;秒杀&#xff0c;砍价&#xff0c;包邮…

JUC(九)-线程池-认识JDK中的线程池

JUC、线程池相关内容 文章目录JUC、线程池相关内容一、 什么是线程池1.1 为什么要使用线程池二、 JDK 自带的线程池2.1 newFixedThreadPool方法2.2 newSingleThreadPool方法2.3 newCachedTreadPool方法2.4 newScheduleTreadPool方法2.4.5 Executors Demo2.5 newWorkStealingTre…

搞机器学习不会线性代数?那怎么行

搞机器学习不会线性代数&#xff1f;那怎么行&#xff01; 文章目录搞机器学习不会线性代数&#xff1f;那怎么行&#xff01;1 直观真正理解向量2 理解向量的加法与数乘3 理解向量乘法的本质3.1 向量内积3.2 向量外积4 理解基向量与线性无关4.1 如何理解基向量4.2 如何理解线性…

刷完了这份足足485页的“1000道Java工程师面经”,成功上岸!

前言 本人18年毕业于一家普通二本&#xff0c;考研凉了且没有实习经验&#xff0c;只做过两个项目会一点SpringBoot&#xff0c;每天就是不断地投简历、刷面经&#xff0c;感觉自己都要抑郁了 最后勉强进入了一家学校合作的外包公司干了3年的CRUD&#xff0c;刚开始每个月拿着…

当一个人学习编程之后,带来的人生有什么新变化?

数字化迅速蔓延的世界里&#xff0c;拥有技术技能&#xff08;特别是编程技能&#xff09;可以为你提供更多更好的个人发展机会。在这里&#xff0c;两位半路转行的程序员给你解释了为什么任何人都应该学习编写代码。因为&#xff0c;学习编程既然改变了他们的生活&#xff0c;…

Transformers学习笔记2. HuggingFace数据集Datasets

Transformers学习笔记2. HuggingFace数据集Datasets一、简介二、操作1. 下载数据集2. 常用函数&#xff08;1&#xff09;排序&#xff08;2&#xff09;打乱顺序&#xff08;3&#xff09;选择函数&#xff08;4&#xff09;过滤&#xff08;5&#xff09;切分数据集&#xff…

图书管理网站

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 模块划分&#xff1a;老师模块、班级模块、学生模块、课程模块、试题模块、试卷模块、 组卷模块、考试模块、答题模块 管…

第十五章项目1——水果管理系统

文章目录目的从需求开始出发从数据库和数据库连接开始——DAO层对应数据库和数据表的创建项目优化——Mybatis等框架思路引入关于Servlet的编写项目优化——MVC思路引入项目优化——ViewBaseServlet模板引擎的引入项目优化——dispatcherServlet引入项目优化——Service层引入项…

【图像去噪】即插即用法图像去噪【含Matlab源码 152期】

⛄一、简介 理论知识参考文献&#xff1a;基于Retinex和ADMM优化的水下光照不均匀图像增强算法 ⛄二、部分源代码 function out PlugPlayADMM_deblur(y,h,lambda,method,opts) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %out PlugPlayADMM_deblur(y,h,lambda,method,opt…

19-Mysql执行原理之索引合并详解

Mysql执行原理之索引合并详解 我们前边说过MySQL在一般情况下执行一个查询时最多只会用到单个二级索引&#xff0c;但存在有特殊情况&#xff0c;在这些特殊情况下也可能在一个查询中使用到多个二级索引&#xff0c;MySQL中这种使用到多个索引来完成一次查询的执行方法称之为&…

day24【代码随想录】平衡二叉树、二叉树的所有路径、路径总和||、路径总和、求根节点到叶节点数字之和

文章目录前言一、平衡二叉树&#xff08;力扣110&#xff09;二、二叉树的所有路径&#xff08;力扣257&#xff09;1、递归法2、迭代法三、路径总和 II&#xff08;力扣113&#xff09;四、路径总和&#xff08;力扣112&#xff09;五、求根节点到叶节点数字之和&#xff08;力…

【图像配准】SIFT图像配准【含Matlab源码 1007期】

⛄一、SIFT配准简介 SIFT即尺度不变特征变换&#xff0c;是用于图像处理领域的一种描述。这种描述具有尺度不变性&#xff0c;可在图像中检测出关键点&#xff0c;是一种局部特征描述子。 1 SIFT算法特点&#xff1a; &#xff08;1&#xff09;具有较好的稳定性和不变性&…