滨湖网站建设,网站多少图片怎么做超链接,宜兴建设局质监网站,wordpress多功能插件又考试了#xff0c;这次题明显感觉难多了#xff0c;骗了不少分#xff0c;竟然rk13 第一题一看不可做#xff0c;然后看第二题 第二题一开始也没有思路#xff0c;然后我就看上了k1的情况#xff0c; 显然k0时只要求所有数的gcd即可#xff0c; k1的话枚举每一个树…又考试了这次题明显感觉难多了骗了不少分竟然rk13 第一题一看不可做然后看第二题 第二题一开始也没有思路然后我就看上了k1的情况 显然k0时只要求所有数的gcd即可 k1的话枚举每一个树给它加1再求gcd取gcd最大值 然后看第三题k4有10%的数据而且样例已经告诉你了k2和k3的答案 那么剩下的只有k0或k1或k4; k0是0k1是1k4的话数据小dfs暴力跑出来了。 这样我就想着暴力跑更多的点于是有了下面的暴力代码 1 #includeiostream2 #includecstdio3 #includecstring4 #includecmath5 #define ll long long6 #define re register7 using namespace std;8 const ll mod1e97;9 ll tot,ans0,son[10005][3];
10 bool vis[10005];
11 ll to[10005],nxt[10005],pre[10005],cnt;
12 inline void add(re ll u,re ll v){
13 cnt,to[cnt]v,nxt[cnt]pre[u],pre[u]cnt;
14 }
15 inline void build(re ll k,re ll l,re ll r){
16 if(lr) return ;
17 if((k1)tot) return ;
18 son[k][1]k1;
19 son[k][2]k1|1;
20 ll mid(lr)1;
21 build(k1,l,mid);
22 build(k1|1,mid1,r);
23 }
24 inline void DFS(re ll x,re ll now){
25 for(re ll i1;i2;i){
26 if(son[now][i]0) continue;
27 add(x,son[now][i]),add(son[now][i],x);
28 DFS(x,son[now][i]);
29 }
30 }
31 inline void dfs(re ll x){
32 ans;
33 vis[x]1;
34 for(re ll ipre[x];i;inxt[i]){
35 if(!vis[to[i]])
36 dfs(to[i]);
37 }
38 vis[x]0;
39 }
40 signed main(){
41 //freopen(data.out,w,stdout);
42 for(re ll i1;i10;i){
43 cnt0;
44 memset(pre,0,sizeof(pre));
45 tot(1i)-1;
46 build(1,1,tot);
47 for(re ll j1;jtot;j){
48 DFS(j,j);
49 }
50 ans0;
51 for(re ll j1;jtot;j){
52 dfs(j);
53 ans((ansmod)?(ans-mod):ans);
54 }
55 coutansiansendl;
56 }
57 return 0;
58 } View Code 但是它很不给力两个小时只跑出5个点然后没办法就粘上去了 然后又看第二题 越看越像二分然后打了个二分模了几个样例都过了复杂度也差不多就交上去了 最后第一题只好cout0endl;竟然还有20分 20401070我真是撞大运了 附二分40分代码其实这题不具备决策单调性二分是错误的 1 #includeiostream2 #includecstdio3 #includecstring4 #define MAXN 1055 #define ll long long6 #define re register7 using namespace std;8 ll n,k,a[MAXN],gcd,r0,l1,mid,ans0,max_day,max_a;9 ll b[MAXN];
10 bool is_stop[MAXN];
11 inline ll GCD(ll a,ll b){
12 return b0?a:GCD(b,a%b);
13 }
14 inline ll judge(ll x){
15 memset(b,0,sizeof(b));
16 memset(is_stop,0,sizeof(is_stop));
17 ll res0;
18 for(re ll ix;imax_day;ix){
19 for(re ll j1;jn;j){
20 if(is_stop[j]) continue;
21 b[j]x;
22 if(b[j]a[j]){
23 res(b[j]-a[j]);
24 is_stop[j]1;
25 }
26 }
27 }
28 return res;
29 }
30 inline ll max(ll a,ll b){return ab?a:b;}
31 signed main(){
32 scanf(%lld%lld,n,k);
33 if(k0){
34 for(re ll i1;in;i){
35 scanf(%lld,a[i]);
36 if(a[i]1){
37 cout1endl;
38 return 0;
39 }
40 if(i1) gcda[i];
41 else gcdGCD(gcd,a[i]);
42 }
43 printf(%lld\n,gcd);
44 return 0;
45 }
46 if(k1){
47 for(re ll i1;in;i){
48 scanf(%lld,a[i]);
49 if(i1) gcda[i];
50 else gcdGCD(gcd,a[i]);
51 }
52 for(re ll i1;in;i){
53 a[i];
54 ll tempa[1];
55 for(re ll j2;jn;j){
56 tempGCD(temp,a[j]);
57 }
58 a[i]--;
59 gcdmax(gcd,temp);
60 }
61 printf(%lld\n,gcd);
62 return 0;
63 }
64 for(re ll i1;in;i){
65 scanf(%lld,a[i]);
66 rmax(r,a[i]);
67 }
68 max_ar;
69 rk;
70 while(lr){
71 mid(lr)1;
72 if(max_a%mid0) max_daymax_a;
73 else max_day(max_a/mid1)*mid;
74 if(judge(mid)k){
75 ansmax(ans,mid),lmid1;
76 }else rmid-1;
77 }
78 printf(%lld\n,ans);
79 return 0;
80 } View Code 转载于:https://www.cnblogs.com/Juve/p/11206353.html