酒店网站建设的优点,多语言网站建设平台代理,厦门商务网站建设,seo有哪些优化工具显然我们直接看前一半#xff0c;然后我们按照斜行看#xff0c;我们发现斜行是递增的#xff0c;而同一行从左向右也是递增的#xff0c;因此我们可以直接二分#xff0c;同时我们发现对称轴的数为Ck,2k.
我们从16斜行枚举即可
#includebits/stdc.h
using name…
显然我们直接看前一半然后我们按照斜行看我们发现斜行是递增的而同一行从左向右也是递增的因此我们可以直接二分同时我们发现对称轴的数为Ck,2k.
我们从16斜行枚举即可
#includebits/stdc.h
using namespace std;
typedef long long LL;
int n;
LL C(int a,int b){LL res1;for(int ia,j1;jb;i--,j){resres*i/j;if(resn) return res;}return res;
}
bool check(int k){LL lk*2,rn;if(lr) return 0;while(lr){LL midlr1;if(C(mid,k)n) rmid;else lmid1;}if(C(r,k)!n) return 0;cout(r1)*r/2k1;return 1;
}
int main(){cinn;for(int k16;;k--){if(check(k)){break;}}
}
2.spfa的本质妙 我们令f[i][j]表示在i步以内可以生成j作物的方法的集合我们记录其最小时间答案就是f[n-1][t]对于初始值f[0][xi]0对于f[i][j]我们可以看看j的生成方式即可即f[i][j]min(f[i][j],max(f[i-1][x],f[i-1][y])),复杂度为(n-1)k,我们加个spfa思想优化j是由x,y更新的只有x,y更新j才可能更新
下面是AC代码
#includebits/stdc.h
using namespace std;
const int N2010,M200010;
int n,m;
int h[N],e[M],w[N],target[M],ne[M],idx;
int dis[N];
queueint q;
bool st[N];
void add(int a,int b,int c){e[idx]b,target[idx]c,ne[idx]h[a],h[a]idx;
}
void spfa(){while(q.size()){int xq.front();q.pop();st[x]0;for(int ih[x];i!-1;ine[i]){int ye[i],ztarget[i];if(dis[z]max(dis[x],dis[y])max(w[x],w[y])){dis[z]max(dis[x],dis[y])max(w[x],w[y]);if(!st[z]){q.push(z);st[z]1;}}}}
}
int main(){int k,T;cinnmkT;memset(h,-1,sizeof(h));for(int i1;in;i) scanf(%d,w[i]);memset(dis,0x3f,sizeof(dis));while(m--){int x;scanf(%d,x);dis[x]0;q.push(x);st[x]1;}while(k--){int a,b,c;scanf(%d%d%d,a,b,c);add(a,b,c);add(b,a,c);}spfa();coutdis[T];
}
3.欧拉函数 下面是数学推导 下面是AC代码
#includebits/stdc.h
using namespace std;
typedef long long LL;
LL gcd(LL a,LL b){return b?gcd(b,a%b):a;
}
LL phi(LL m){LL resm;for(LL i2;im/i;i){if(m%i0){while(m%i0) m/i;resres/i*(i-1);}}if(m1) resres/m*(m-1);return res;
}
int main(){int T;cinT;while(T--){LL a,m;cinam;LL dgcd(a,m);coutphi(m/d)endl;}
}