




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四题矩形覆盖矩形覆盖(存盘名NOIPG4)问题描述:在平面上有 n 个点(n <= 50),每个点用一对整数坐标表示。例如:当 n4 时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4(0,7),见图一。这些点可以用 k 个矩形(1<=k<=4)全部覆盖,矩形的边平行于坐标轴。当 k=2 时,可用如图二的两个矩形 sl,s2 覆盖,s1,s2 面积和为 4。问题是当 n 个点坐标和 k 给出后,怎样才能使得覆盖所有点的 k 个矩形的面积之和为最小呢。约定:覆盖一个点的矩形面积为 0;覆盖平行于坐标轴直线上点的矩形面积也为0。各个矩形必须完全分开(边
2、线与顶点也都不能重合)。 输入:键盘输人文件名。文件格式为n kxl y1x2 y2. .xn yn (0<=xi,yi<=500) 输出:输出至屏幕。格式为:一个整数,即满足条件的最小的矩形面积之和。 输入输出样例d.in :4 21 12 23 60 7屏幕显示:4分析【题解一】1、本题的难度较大。如果你这样认为:即在假定已用i个矩形(面积和满足最小)覆盖所有点的基础上,穷举所有2个矩形合并成1个矩形(条件是:在所有合并方案中使合并后面积最小),从而使矩形个数减少为i-1那就错了,可是却可以通过前4组测试数据!正确的做法是对不同的K值分别进行计算,好在K值较小,否则.讨论:k=
3、1,只要求出n个点坐标的最大、最小值,就可求得矩形的位置与面积;k=2,有2个矩形,它们只有2种分布形式:左右式(flag=0),上下式(flag=1)12flag=021flag=1对于左右式,显然要先将所有点按横坐标升序排列,可将点1点i-1放入矩形1中,将点i点n放入矩形2中,求两矩形的面积之和;如果面积和比上一个值小,记下;让i从2循环到n,就可完成左右式的全部搜索;对于上下式,先将所有点按纵坐标升序排列,依此类推。k=3,有3个矩形,它们有6种分布形式:123flag=1123flag=0321flag=2123flag=3123flag=4123flag=5要用两重循环进行搜索:设
4、i,j为循环变量,将点1i-1放入矩形1中,点ij-1放入矩形2中,点jn放入矩形3中;点必须在放入前排好序(均为升序):对于flag=0,所有点按横坐标排序;对于flag=1,所有点按纵坐标排序;对于flag=2,所有点先按横坐标排序,然后点in按纵坐标排序;对于flag=3,所有点先按横坐标排序,然后点1j-1按纵坐标排序;对于flag=4,所有点先按纵坐标排序,然后点1j-1按横坐标排序;对于flag=5,所有点先按纵坐标排序,然后点in按横坐标排序;至于k=4,4个矩形有22种分布形式,实在太复杂!幸好测试数据中没有K=4的情形(似乎有意放了一马?)。据说本题全国没有一人全对!(只要求
5、K=1,2,3)程序清单$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R-,S-,T-,V+,X+,Y+$M 65520,0,655360program NOIPG4; const maxn=50;maxk=3; type rect=record定义"矩形"数据类型 l,r,t,b:word;矩形的左边,右边,下边,上边距坐标轴的距离 end; vxy=record定义"点"数据类型 x,y:word;点的横、纵坐标 end; var ju:array1.maxkof rect; v:array1.maxn,0.2 of vx
6、y;v0:vxy; n,k,i,j,ii,jj:byte;f:text;filename:string; Smin,temp:longint; function intersect(jui,juj:rect):boolean;判断两矩形是否有公共点 var b1,b2,t1,t2,l1,l2,r1,r2:word; begin b1:=jui.b;b2:=juj.b;t1:=jui.t;t2:=juj.t; l1:=jui.l;l2:=juj.l;r1:=jui.r;r2:=juj.r; intersect:=(l2<=r1) and (l2>=l1) or (r2<=r1)
7、 and (r2>=l1) or (l2<=l1) and (r2>=r1) and (t2<=b1) and (t2>=t1) or (b2<=b1) and (b2>=t1) or (b2>=b1) and (t2<=t1); end; function area(ju:rect):longint;求矩形的面积 var temp:longint; begintemp:=ju.b-ju.t;area:=temp*(ju.r-ju.l);不能直接写成area:=(ju.b-ju.t)*(ju.r-ju.l);因为这样可能会溢出! end;
8、procedure insert(v:vxy;var ju:rect);将点放入矩形 begin if v.x<ju.l then ju.l:=v.x; if v.x>ju.r then ju.r:=v.x; if v.y<ju.t then ju.t:=v.y; if v.y>ju.b then ju.b:=v.y; end; procedure init;初始化 begin write('Input filename:');readln(filename); assign(f,filename);reset(f);readln(f,n,k); for
9、 i:=1 to n do begin read(f,vi,0.x,vi,0.y); vi,1.x:=vi,0.x;vi,1.y:=vi,0.y; end; for i:=1 to n-1 do按横坐标升序排列各点,存入vi,0 for j:=i+1 to n do if vi,0.x>vj,0.x then begin v0:=vi,0;vi,0:=vj,0;vj,0:=v0; end; for i:=1 to n-1 do按纵坐标升序排列各点,存入vi,1 for j:=i+1 to n do if vi,1.y>vj,1.y then begin v0:=vi,1;vi,1:
10、=vj,1;vj,1:=v0; end; end; procedure solve;核心计算 begin smin:=maxlongint; case k of 1:beginK=1的情形 ju1.b:=vn,1.y;ju1.t:=v1,1.y; ju1.r:=vn,0.x;ju1.l:=v1,0.x; smin:=area(ju1); end; 2:for jj:=0 to 1 do beginK=2的情形 flag=0,1的情形 ju1.b:=v1,jj.y;ju1.t:=v1,jj.y; ju1.r:=v1,jj.x;ju1.l:=v1,jj.x; for i:=2 to n do be
11、gin insert(vi-1,jj,ju1);将第i-1点放入矩形1 ju2.b:=vi,jj.y;ju2.t:=vi,jj.y;将第i至n点放入矩形2 ju2.r:=vi,jj.x;ju2.l:=vi,jj.x; for ii:=i+1 to n do insert(vii,jj,ju2); if not intersect(ju1,ju2) then begin如果两矩形不交叉 temp:=0;for ii:=1 to k do temp:=temp+area(juii); if temp<smin then smin:=temp; end; end; end; 3:begin f
12、or jj:=0 to 1 do begin flag=0,1的情形 ju1.b:=v1,jj.y;ju1.t:=v1,jj.y; ju1.r:=v1,jj.x;ju1.l:=v1,jj.x; for i:=2 to n-1 do begin insert(vi-1,jj,ju1); ju2.b:=vi,jj.y;ju2.t:=vi,jj.y; ju2.r:=vi,jj.x;ju2.l:=vi,jj.x; if intersect(ju1,ju2) then continue; for j:=i+1 to n do begin insert(vj-1,jj,ju2); ju3.b:=vj,jj
13、.y;ju3.t:=vj,jj.y; ju3.r:=vj,jj.x;ju3.l:=vj,jj.x; for ii:=j+1 to n do insert(vii,jj,ju3); if intersect(ju2,ju3) then continue; temp:=0;for ii:=1 to k do temp:=temp+area(juii); if temp<smin then smin:=temp; end; end; end; flag=2的情形:先竖直划分大矩形;再在右矩形中水平划分 ju1.b:=v1,0.y;ju1.t:=v1,0.y; ju1.r:=v1,0.x;ju1
14、.l:=v1,0.x; for i:=2 to n-1 do begin for ii:=1 to n do vii,2:=vii,0;所有点按横坐标升序排列,存入vi,2 for ii:=i to n-1 do将点i至n按纵坐标升序排列,存入vi,2 for jj:=ii+1 to n do if vii,2.y>vjj,2.y then begin v0:=vii,2;vii,2:=vjj,2;vjj,2:=v0; end;结果:所有点先按横坐标升序排列,然后点i至n按纵坐标升序排列 insert(vi-1,2,ju1);将第i-1点放入矩形1 ju2.b:=vi,2.y;ju2.t
15、:=vi,2.y;将第i点放入矩形2 ju2.r:=vi,2.x;ju2.l:=vi,2.x; if intersect(ju1,ju2) then continue; for j:=i+1 to n do begin insert(vj-1,2,ju2);将第j-1点放入矩形2 ju3.b:=vj,2.y;ju3.t:=vj,2.y;将第j至n点放入矩形3 ju3.r:=vj,2.x;ju3.l:=vj,2.x; for ii:=j+1 to n do insert(vii,2,ju3); if intersect(ju2,ju3) then continue; temp:=0;for ii
16、:=1 to k do temp:=temp+area(juii); if temp<smin then smin:=temp; end; end; flag=3的情形 for j:=3 to n do begin for ii:=1 to n do vii,2:=vii,0; for ii:=1 to j-2 do for jj:=ii+1 to j-1 do if vii,2.y>vjj,2.y then begin v0:=vii,2;vii,2:=vjj,2;vjj,2:=v0; end; ju3.b:=vj,2.y;ju3.t:=vj,2.y; ju3.r:=vj,2.x
17、;ju3.l:=vj,2.x; for ii:=j+1 to n do insert(vii,2,ju3); for i:=2 to j-1 do begin ju2.b:=vi,2.y;ju2.t:=vi,2.y; ju2.r:=vi,2.x;ju2.l:=vi,2.x; for ii:=i+1 to j-1 do insert(vii,2,ju2); ju1.b:=v1,2.y;ju1.t:=v1,2.y; ju1.r:=v1,2.x;ju1.l:=v1,2.x; for ii:=2 to i-1 do insert(vii,2,ju1); if intersect(ju1,ju2) or
18、 intersect(ju2,ju3) or intersect(ju1,ju3) then continue; temp:=0;for ii:=1 to k do temp:=temp+area(juii); if temp<smin then smin:=temp; end; end; flag=4的情形 for j:=3 to n do begin for ii:=1 to n do vii,2:=vii,1; for ii:=1 to j-2 do for jj:=ii+1 to j-1 do if vii,2.x>vjj,2.x then begin v0:=vii,2;
19、vii,2:=vjj,2;vjj,2:=v0; end; ju3.b:=vj,2.y;ju3.t:=vj,2.y; ju3.r:=vj,2.x;ju3.l:=vj,2.x; for ii:=j+1 to n do insert(vii,2,ju3); for i:=2 to j-1 do begin ju2.b:=vi,2.y;ju2.t:=vi,2.y; ju2.r:=vi,2.x;ju2.l:=vi,2.x; for ii:=i+1 to j-1 do insert(vii,2,ju2); ju1.b:=v1,2.y;ju1.t:=v1,2.y; ju1.r:=v1,2.x;ju1.l:=
20、v1,2.x; for ii:=2 to i-1 do insert(vii,2,ju1); if intersect(ju1,ju2) or intersect(ju2,ju3) or intersect(ju1,ju3) then continue; temp:=0;for ii:=1 to k do temp:=temp+area(juii); if temp<smin then smin:=temp; end; end; flag=5的情形 ju1.b:=v1,1.y;ju1.t:=v1,1.y; ju1.r:=v1,1.x;ju1.l:=v1,1.x; for i:=2 to
21、n-1 do begin for ii:=1 to n do vii,2:=vii,1; for ii:=i to n-1 do for jj:=ii+1 to n do if vii,2.x>vjj,2.x then begin v0:=vii,2;vii,2:=vjj,2;vjj,2:=v0; end; insert(vi-1,2,ju1); ju2.b:=vi,2.y;ju2.t:=vi,2.y; ju2.r:=vi,2.x;ju2.l:=vi,2.x; if intersect(ju1,ju2) then continue; for j:=i+1 to n do begin in
22、sert(vj-1,2,ju2); ju3.b:=vj,2.y;ju3.t:=vj,2.y; ju3.r:=vj,2.x;ju3.l:=vj,2.x; for ii:=j+1 to n do insert(vii,2,ju3); if intersect(ju2,ju3) then continue; temp:=0;for ii:=1 to k do temp:=temp+area(juii); if temp<smin then smin:=temp; end; end; end; end; end; begin主程序 init; solve; writeln(smin); end.
23、点评:压轴题 据说,本次复赛主要是前三题的竞争,可见本题能得分的人相当少,但是K=1应该说是送分的,K=2也是比较容易的。通过测试,发现在K=3的第4、5组测试数据中仅用到了flag=1的情形,也就是说,只要写出flag=1的程序段就OK了(没写flag=0,2,3,4,5的同学偷着乐?)。【题解二】具体方法是将每个点极角排序然后就是一个经典的DP了:fi,j,k=min(fi,j,k,fi,t,k-1+st+1,j)另外注意要DP两次因为可以是横着的也可以是竖着的具体实现参见以下代码:var n,m,i,t,ans,last:longint; x,
24、y:array1.51 of integer;procedure sort(l,r:integer);var i,j,mid,t:integer;begin i:=l;j:=r;mid:=x(l+r) shr 1; repeat while(xi<mid) do inc(i); while(xj>mid) do dec(j); if i<=j then
25、 begin t:=xi;xi:=xj;xj:=t; t:=yi;yi:=yj;yj:=t; inc(i);dec(j); end
26、; until i>j; if i<r then sort(i,r); if l<j then sort(l,j);end;procedure qsort(l,r:integer);var i,j,mid,t:integer;begin i:=l;j:=r;mid:=y(l+r) shr 1; repeat while(yi<mid) do inc(i);
27、160;while(yj>mid) do dec(j); if i<=j then begin t:=xi;xi:=xj;xj:=t; t:=yi;yi:=yj;yj:=t; &
28、#160; inc(i);dec(j); end; until i>j; if i<r then qsort(i,r); if l<j then qsort(l,j);end;function hight(l,r:integer):integer;var i,smax,smin:integer;begin smax:=0;smin:=maxint;
29、60; for i:=l to r do begin if yi>smax then smax:=yi; if yi<smin then smin:=yi; end; hight:=smax-smin;end;function min(x,y:longint):longint;begin if x&l
30、t;y then min:=x else min:=y;end;procedure Dynamic;var j,k,p:integer; s:array1.50,1.50 of longint; f:array1.50,1.50,1.4 of longint;begin for i:=1 to m do for j:=1 to m do for k:=1 to n do
31、 fi,j,k:=300000; for i:=1 to m do for j:=i to m do begin si,j:=(xj-xi)*hight(i,j); fi,j,1:=si,j;
32、 end; for p:=1 to m do for i:=1 to m-p do begin j:=i+p; for k:=2 to n do
33、 for t:=i to j-1 do fi,j,k:=min(fi,j,k,fi,t,k-1+st+1,j); end; ans:=min(ans,f1,m,n);end;begin assign(input,'t4.in');reset(input); a
34、ssign(output,'t4.out');rewrite(output); readln(m,n); for i:=1 to m do readln(xi,yi); xm+1:=maxint;ym+1:=maxint; ans:=maxlongint; sort(1,m); t:=x1;last:=1; for i:=2 to m+1 do &
35、#160;if xi<>t then begin qsort(last,i-1); t:=xi; last:=i; end; Dynamic;&
36、#160; for i:=1 to m do begin t:=xi; xi:=yi; yi:=t; end; sort(1,m); t:=x1;last:=1; for i:=2 to m+1 do
37、; if xi<>t then begin qsort(last,i-1); t:=xi; last:=i; end; D
38、ynamic; writeln(ans); close(input);close(output);end.【题解三】 好吧,我承认,此题真正地震撼了我,我无语。 K明明是1到4的取值,由于数据最大K为3,然后所有的做法竟然都是分情况模拟!K=1时如何,K=2时有哪些分的情况。(上下分,左右分),K=3的时候6种情况。 每次都要排序X,Y坐标,算面积。$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R-,S-,T-,V+,X+,Y+$M 65520,0,6
39、55360program NOIPG4;const maxn=50;maxk=3;type rect=record定义"矩形"数据类型 l,r,t,b:word;矩形的左边,右边,下边,上边距坐标轴的距离 end; vxy=record定义"点"数据类型
40、60; x,y:word;点的横、纵坐标 end;var ju:array1.maxkof rect; v:array1.maxn,0.2 of vxy;v0:vxy; n,k,i,j,ii,jj:byte;f:text;filename:string; Smin
41、,temp:longint;function intersect(jui,juj:rect):boolean;判断两矩形是否有公共点 var b1,b2,t1,t2,l1,l2,r1,r2:word; begin b1:=jui.b;b2:=juj.b;t1:=jui.t;t2:=juj.t; l1:=jui.l;l2:=juj.l;r1:=jui.r;r2:=juj.r;
42、0; intersect:=(l2<=r1) and (l2>=l1) or (r2<=r1) and (r2>=l1) or (l2<=l1) and (r2>=r1) and (t2<=b1) and (t2>=t1) or (b2<=b1) and (b2>=t1) o
43、r (b2>=b1) and (t2<=t1); end;function area(ju:rect):longint;求矩形的面积 var temp:longint; begin temp:=ju.b-ju.t; area:=temp*(ju.r-ju.l); end;procedure insert(v:vxy;var
44、 ju:rect);将点放入矩形 begin if v.x<ju.l then ju.l:=v.x; if v.x>ju.r then ju.r:=v.x; if v.y<ju.t then ju.t:=v.y; if v.y>ju.b then ju.b:=v.y;
45、0; end;procedure init;初始化 begin write('Input filename:');readln(filename); assign(f,filename);reset(f);readln(f,n,k); for i:=1 to n do begin r
46、ead(f,vi,0.x,vi,0.y); vi,1.x:=vi,0.x;vi,1.y:=vi,0.y; end; for i:=1 to n-1 do按横坐标升序排列各点,存入vi,0 for j:=i+1 to n do
47、160; if vi,0.x>vj,0.x then begin v0:=vi,0;vi,0:=vj,0;vj,0:=v0; end; for i:=1 to n-1 do按纵坐标升序排列各点,存入vi,1
48、160; for j:=i+1 to n do if vi,1.y>vj,1.y then begin v0:=vi,1;vi,1:=vj,1;vj,1:=v0; end; end;procedure solv
49、e;核心计算 begin smin:=maxlongint; case k of 1:beginK=1的情形 ju1.b:=vn,1.y;ju1.t:=v1,1.y; &
50、#160; ju1.r:=vn,0.x;ju1.l:=v1,0.x; smin:=area(ju1); end; 2:for jj:=0 to 1 do beginK=2的情形
51、160; flag=0,1的情形 ju1.b:=v1,jj.y;ju1.t:=v1,jj.y; ju1.r:=v1,jj.x;ju1.l:=v1,jj.x;
52、 for i:=2 to n do begin insert(vi-1,jj,ju1);将第i-1点放入矩形1 ju2.b:=vi,jj.y;ju2.t:=vi,jj.y;将第i至n点放入矩形2
53、; ju2.r:=vi,jj.x;ju2.l:=vi,jj.x; for ii:=i+1 to n do insert(vii,jj,ju2); if not intersect(ju1,ju
54、2) then begin如果两矩形不交叉 temp:=0;for ii:=1 to k do temp:=temp+area(juii); if temp<smin then smin:=temp;
55、; end; end; end; 3:begin
56、 for jj:=0 to 1 do begin flag=0,1的情形 ju1.b:=v1,jj.y;ju1.t:=v1,jj.y; ju1.r:=v1,jj.x;ju1.l:=v1,jj.x;
57、0; for i:=2 to n-1 do begin insert(vi-1,jj,ju1); ju2.b:=vi,jj.y;ju2.t:=vi,jj.y
58、; ju2.r:=vi,jj.x;ju2.l:=vi,jj.x; if intersect(ju1,ju2) then continue;
59、60; for j:=i+1 to n do begin insert(vj-1,jj,ju2); ju3.b:=vj,
60、jj.y;ju3.t:=vj,jj.y; ju3.r:=vj,jj.x;ju3.l:=vj,jj.x; for ii:=j+1 to n do insert(vii,jj,ju3);
61、; if intersect(ju2,ju3) then continue; temp:=0;for ii:=1 to k do temp:=temp+area(juii);
62、60; if temp<smin then smin:=temp; end; end;
63、160; end; flag=2的情形:先竖直划分大矩形;再在右矩形中水平划分 ju1.b:=v1,0.y;ju1.t:=v1,0.y; ju1.r:=v1
64、,0.x;ju1.l:=v1,0.x; for i:=2 to n-1 do begin for ii:=1 to n do vii,2:=vii,0;所有点按横坐标升序排列,存入vi,2 for ii:=i to n-1 do
65、将点i至n按纵坐标升序排列,存入vi,2 for jj:=ii+1 to n do if vii,2.y>vjj,2.y then begin
66、0; v0:=vii,2;vii,2:=vjj,2;vjj,2:=v0; end;结果:所有点先按横坐标升序排列,然后点i至n按纵坐标升序排列 insert(vi-1,2,ju1);将第i-1点放入矩形1
67、 ju2.b:=vi,2.y;ju2.t:=vi,2.y;将第i点放入矩形2 ju2.r:=vi,2.x;ju2.l:=vi,2.x; if intersect(ju1,ju2) then continu
68、e; for j:=i+1 to n do begin insert(vj-1,2,ju2);将第j-1点放入矩形2 ju3.b:=vj,2.y;ju3.t
69、:=vj,2.y;将第j至n点放入矩形3 ju3.r:=vj,2.x;ju3.l:=vj,2.x; for ii:=j+1 to n do insert(vii,2,ju3);
70、160; if intersect(ju2,ju3) then continue; temp:=0;for ii:=1 to k do temp:=temp+area(juii); if temp<smin then smin:=temp;
71、60; end; end; flag=3的情形 for j:=3 to n do begin
72、160; for ii:=1 to n do vii,2:=vii,0; for ii:=1 to j-2 do for jj:=ii+1 to j-1 do
73、; if vii,2.y>vjj,2.y then begin v0:=vii,2;vii,2:=vjj,2;vjj,2:=v0;
74、0; end; ju3.b:=vj,2.y;ju3.t:=vj,2.y; ju3.r:=vj,2.x;ju3.l:=vj,2.x; for ii:=j+1 to n do insert(vii,2,ju3
75、); for i:=2 to j-1 do begin ju2.b:=vi,2.y;ju2.t:=vi,2.y; ju2.r:=vi,2.x;ju2.l:=
76、vi,2.x; for ii:=i+1 to j-1 do insert(vii,2,ju2); ju1.b:=v1,2.y;ju1.t:=v1,2.y; &
77、#160; ju1.r:=v1,2.x;ju1.l:=v1,2.x; for ii:=2 to i-1 do insert(vii,2,ju1); if intersect(ju1,ju2) or intersect(ju2,ju3) or
78、 intersect(ju1,ju3) then continue; temp:=0;for ii:=1 to k do temp:=temp+area(juii); &
79、#160; if temp<smin then smin:=temp; end; end; flag=4的情形 for j:=
80、3 to n do begin for ii:=1 to n do vii,2:=vii,1; for ii:=1 to j-2 do for jj:=ii+1 to j-1 do &
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酶标仪使用方法
- 幼儿园班主任发言稿模版
- 新质生产力讲座大学
- 局限性胸膜间皮瘤的临床护理
- 江西省九江市九江有色金属冶炼厂职工子弟学校2025届七年级数学第二学期期末复习检测试题含解析
- 先天性马蹄内翻足健康宣讲课件
- 手部先天性畸形的临床护理
- 山东省平原县2025届数学七下期末复习检测模拟试题含解析
- 溃疡基因转录分析
- 开展2023愚人节创意活动方案大全
- 国企煤矿面试题库及答案
- 2025年企业合规管理工作计划范文
- 施工安全常识试题及答案
- 2025届湖北省T8联盟压轴卷1英语试题
- 《图像处理技术》课件
- 泳池负责人试题及答案
- 关于电子旅游合同范例
- 中国经导管左心耳封堵术临床路径专家共识(2025版)解读
- 煤矿数字化智慧矿山整体解决方案(技术方案)
- 理化外包合同协议
- 水务集团笔试题目及答案
评论
0/150
提交评论