Comet OJ - Contest #0題解

傳送門

菜爆了……總共只有一道題會做的……而且也沒有短裙好難過

為啥必須得有手機才能注冊賬號啊喂……歧視么……

\(A\) 解方程

推一下柿子大概就是

\[x-\sqrt{n}=y+z+2\sqrt{yz}\]

如果\(\sqrt{n}\)是無理數,那么就是

\[x=y+z,{n\over 4}=yz\]

那么要滿足\(n\)必須是\(4\)的倍數,然后爆搜\({n\over 4}\)的因子,統計答案就行了

如果\(n\)不是無理數,那么

\[x=\sqrt{n}+(y-z)^2\]

這東西一看就是無限解吧……

//minamoto
#include<bits/stdc++.h>
#define R register
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){R int res,f=1;R char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
const int N=1e5+5;
int p[N],vis[N],m;
void init(int n=1e5){fp(i,2,n){if(!vis[i])p[++m]=i;for(R int j=1;j<=m&&1ll*i*p[j]<=n;++j){vis[i*p[j]]=1;if(i%p[j]==0)break;}}
}
const int P=1e9+7;
int st[N],c[N],top,res,sum,n,sqr;
void dfs(int x,int s){if(x==top+1){if(n/4/s>s)return;res=(res+1)%P,sum=(sum+s+n/4/s)%P;return;}for(R int i=0,t=1;i<=c[x];++i,t*=st[x])dfs(x+1,s*t);
}
void solve(int x){top=0;for(R int i=1;1ll*p[i]*p[i]<=x;++i)if(x%p[i]==0){st[++top]=p[i],c[top]=0;while(x%p[i]==0)x/=p[i],++c[top];}if(x>1)st[++top]=x,c[top]=1;res=sum=0;dfs(1,1);
}
int main(){
//  freopen("testdata.in","r",stdin);init();int T=read();while(T--){n=read(),sqr=sqrt(n);if(n==0||sqr*sqr==n){puts("infty");continue;}if(n%4){puts("0 0");continue;}solve(n/4);printf("%d %d\n",res,1ll*sum*n/4%P);}return 0;
}

\(B\) 旅途

這么傻逼的一個\(dp\)我居然沒想出來……

如果沒有遍歷完所有\(n\)個城市,那么遍歷到的城市顯然是一條鏈。我們可以設\(f_{i,j,k}\)表示在第\(i\)天,左邊有\(j\)個已經訪問過的城市,右邊有\(k\)個已經訪問過的城市的概率。轉移顯然

如果遍歷完了所有的\(n\)個城市咋辦?發現其實不看成環也沒問題,直接把訪問城市個數對\(n\)\(\min\)就可以了

//minamoto
#include<bits/stdc++.h>
#define R register
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){R int res,f=1;R char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
const int N=505,P=1e9+7;
inline void Add(R int &x,R int y){(x+=y)>=P?x-=P:0;}
inline int add(R int x,R int y){return x+y>=P?x+y-P:x+y;}
inline int dec(R int x,R int y){return x-y<0?x-y+P:x-y;}
inline int mul(R int x,R int y){return 1ll*x*y-1ll*x*y/P*P;}
int ksm(R int x,R int y){R int res=1;for(;y;y>>=1,x=mul(x,x))(y&1)?res=mul(res,x):0;return res;
}
int f[N][N][N],g[N],T,n,m,k,p,q,res;
int main(){
//  freopen("testdata.in","r",stdin);T=read();while(T--){n=read(),m=read(),k=read(),p=read(),q=read(),res=0;fp(i,1,m)fp(j,0,i-1)fp(k,0,i-1)f[i][j][k]=0;fp(i,1,n)g[i]=0;f[1][0][0]=1;fp(i,1,m-1)fp(j,0,i-1)fp(k,0,i-1)Add(f[i+1][max(j-1,0)][k+1],mul(f[i][j][k],p)),Add(f[i+1][j+1][max(k-1,0)],mul(f[i][j][k],q)),Add(f[i+1][j][k],mul(f[i][j][k],100-p-q));fp(i,0,m-1)fp(j,0,m-1)Add(g[min(i+j+1,n)],f[m][i][j]);fp(i,1,n)Add(res,mul(g[i],ksm(i,k)));printf("%d\n",res);}return 0;
}

\(C\) 項鏈與計數

如果一個點對滿足條件,說明它們之間存在至少兩條邊不重復的路徑,也就是說明它們在同一個邊雙里

動態維護邊雙,看這里

//minamoto
#include<bits/stdc++.h>
#define R register
#define ll long long
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){R int res,f=1;R char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
const int N=1e6+5,M=2e6+5;
struct eg{int v,nx;}e[N<<1];int head[N],tot;
inline void add(R int u,R int v){e[++tot]={v,head[u]},head[u]=tot;}
struct EG{int u,v,is;}st[M];
int fa[N],ga[N],sz[N],dep[N],q[N];
int n,m;ll res,sum;
int find(int x){return ga[x]==x?x:ga[x]=find(ga[x]);}
inline ll calc(R int x){return 1ll*x*(x-1)>>1;}
void bfs(int u){int h=1,t=0;q[++t]=u,dep[u]=1;while(h<=t){u=q[h++];go(u)if(v!=fa[u])q[++t]=v,dep[v]=dep[u]+1,fa[v]=u;}
}
void merge(int u,int v){u=find(u),v=find(v);while(u!=v){if(dep[u]<dep[v])swap(u,v);res-=calc(sz[find(fa[u])]),res-=calc(sz[u]),sz[ga[fa[u]]]+=sz[u],res+=calc(sz[ga[fa[u]]]);u=ga[u]=ga[fa[u]];}
}
int main(){
//  freopen("testdata.in","r",stdin);int T=read();while(T--){n=read(),m=read(),tot=0,sum=res=0;fp(i,1,n)ga[i]=i,sz[i]=1,head[i]=0,dep[i]=0;for(R int i=1,u,v,x,y;i<=m;++i){x=read(),y=read(),u=find(x),v=find(y),st[i].u=x,st[i].v=y;if(u!=v){add(x,y),add(y,x),st[i].is=1;sz[u]>sz[v]?ga[v]=u:sz[u]<sz[v]?ga[u]=v:(ga[v]=u,++sz[u]);}else st[i].is=0;}fp(i,1,n)if(!dep[i])bfs(i);fp(i,1,n)ga[i]=i,sz[i]=1;fp(i,1,m){if(!st[i].is)merge(st[i].u,st[i].v);sum^=1ll*i*res;
//          printf("%d %lld\n",i,res);}printf("%lld\n",sum);}return 0;
}

\(D\)

我們設\(f_{i,j,k}\)表示已經完成了\(i\)這個集合的任務,\(A\)結束的時間為\(j\)\(B\)結束的時間為\(k\)\(C\)能結束的最早時間是多少。轉移的話大概比較顯然

雖然看著這東西的復雜度似乎是\(O(T\times 2^6\times 180^2\times 6\times 7)\)……有點炸的樣子……不過因為合法的狀態不是很多,所以我們只轉移合法的就可以過了

//minamoto
#include<bits/stdc++.h>
#define R register
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
template<class T>inline bool cmin(T&a,const T&b){return a>b?a=b,1:0;}
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){R int res,f=1;R char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
const int N=(1<<6)+5;
int sz[N],a[9][9],f[N][205][205],lim;
int main(){
//  freopen("testdata.in","r",stdin);int T=read();lim=(1<<6);fp(i,1,lim-1)sz[i]=sz[i>>1]+(i&1);while(T--){fp(i,0,5)fp(j,0,6)a[i][j]=read();memset(f,0x3f,sizeof(f));f[0][0][0]=0;fp(i,0,lim-1)fp(j,0,180)fp(k,0,180)if(f[i][j][k]<=180)fp(x,0,5)if(i>>x&1^1){int s=i|(1<<x);cmin(f[s][min(j+a[x][0],181)][k],f[i][j][k]),cmin(f[s][j][min(k+a[x][1],181)],f[i][j][k]),cmin(f[s][j][k],f[i][j][k]+a[x][2]);int t=min(max(f[i][j][k],max(j,k))+a[x][6],181);cmin(f[s][t][t],t);t=min(max(j,k)+a[x][3],181),cmin(f[s][t][t],f[i][j][k]);t=min(max(j,f[i][j][k])+a[x][4],181),cmin(f[s][t][k],t);t=min(max(k,f[i][j][k])+a[x][5],181),cmin(f[s][j][t],t);}int res=0,cnt=0;fp(i,1,lim-1)fp(j,0,180)fp(k,0,180)if(f[i][j][k]<=180&&(sz[i]>res||sz[i]==res&&max(max(j,k),f[i][j][k])<cnt))res=sz[i],cnt=max(max(j,k),f[i][j][k]);printf("%d %d\n",res,cnt);}return 0;
}

\(E\)

orz Gloid

為了最大化\(LIS\),修改之后\(LIS\)要么不變要么\(+1\),一下設原數列的\(LIS\)長度為\(m\)

那么我們先把求\(LIS\)時需要的單調棧給預處理出來,然后分情況討論

1.\(i\)修改之后\(LIS\)長度\(+1\),那么我們需要它前面有一個\(a_j\)滿足以\(j\)結尾的\(LIS\)長度為\(d\),后面有一個\(a_k\)滿足以\(k\)開頭的\(LIS\)長度為\(m-d\),且有\(a_k>a_j+1\),那么為了滿足修改后的元素最小,我們顯然是取把它改成\(a_j+1\)最優

2.如果\(i\)沒辦法在一個長度為\(m+1\)的數列里,那么改完之后\(LIS\)的長度還是為\(m-1\)。這個也要分情況討論。我們先假設如果有一個\(LIS\)不包含\(i\),那么顯然它可以取\(0\)

3.如果所有的\(LIS\)都包含\(i\),那么它只能取滿足存在\(a_j\)長度為\(d\)\(a_k\)長度為\(m-d-1\)\(a_j+1\)或者\(a_j\)長度為\(d-1\)\(a_k\)長度為\(m-d\)\(a_j+1\)

//minamoto
#include<bits/stdc++.h>
#define R register
#define inf 0x3f3f3f3f
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){R int res,f=1;R char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
char sr[1<<21],z[20];int K=-1,Z=0;
inline void Ot(){fwrite(sr,1,K+1,stdout),K=-1;}
void print(R int x){if(K>1<<20)Ot();if(x<0)sr[++K]='-',x=-x;while(z[++Z]=x%10+48,x/=10);while(sr[++K]=z[Z],--Z);sr[++K]='\n';
}
const int N=1e5+5;
int p[N],q[N],len[N],las[N],now[N],a[N],cnt,T,n,ans,mx;
multiset<int>b,c;
int main(){
//  freopen("testdata.in","r",stdin);T=read();while(T--){n=read();fp(i,1,n)a[i]=read();q[0]=inf;fp(i,1,n)q[i]=-1;ans=0;fd(i,n,1){int l=0,r=ans;while(l<=r){int mid=(l+r)>>1;q[mid]>a[i]?(len[i]=mid+1,l=mid+1):r=mid-1;}las[i]=q[len[i]],q[len[i]]=a[i],cmax(ans,len[i]);}cnt=0,b.clear(),c.clear();p[0]=-1;fp(i,1,n)p[i]=inf;if(q[ans]>p[0])++cnt;if(q[ans]>p[0]+1)b.insert(p[0]);if(q[ans-1]>p[0]+1)c.insert(p[0]);mx=0;fp(i,1,n){if(q[len[i]]>p[ans-len[i]]+1)b.erase(b.find(p[ans-len[i]]));if(ans>=len[i]+1&&q[len[i]]>p[ans-len[i]-1]+1)c.erase(c.find(p[ans-len[i]-1]));if(q[len[i]]>p[ans-len[i]])--cnt;q[len[i]]=las[i];if(q[len[i]]>p[ans-len[i]]+1)b.insert(p[ans-len[i]]);if(ans>=len[i]+1&&q[len[i]]>p[ans-len[i]-1]+1)c.insert(p[ans-len[i]-1]);if(q[len[i]]>p[ans-len[i]])++cnt;if(!b.empty())print(ans+1),sr[K]=' ',print((*b.begin())+1);else if(cnt)print(ans),sr[K]=' ',sr[++K]='0',sr[++K]='\n';else print(ans),sr[K]=' ',print((*c.begin())+1);int l=0,r=mx;while(l<=r){int mid=(l+r)>>1;p[mid]<a[i]?(now[i]=mid+1,l=mid+1):r=mid-1;}cmax(mx,now[i]);if(q[ans-now[i]]>p[now[i]]+1)b.erase(b.find(p[now[i]]));if(ans>=now[i]+1&&q[ans-now[i]-1]>p[now[i]]+1)c.erase(c.find(p[now[i]]));if(q[ans-now[i]]>p[now[i]])--cnt;p[now[i]]=a[i];if(q[ans-now[i]]>p[now[i]]+1)b.insert(p[now[i]]);if(ans>=now[i]+1&&q[ans-now[i]-1]>p[now[i]]+1)c.insert(p[now[i]]);if(q[ans-now[i]]>p[now[i]])++cnt;}}return Ot(),0;
}

\(F\)

計蒜幾盒的精度是真的難受啊……

首先,如果我們能算出\(g[s]\)表示\(s\)這個集合的木棒能組成的最大面積,那么我們就可以直接\(3^n\)\(dp\)求得答案

所以怎么算最大面積呢……

首先我們把\(s\)這個集合里的木棒按升序排序,記為\(a_1,a_2,...,a_m\),根據三角形不等式,它們能構成多邊形當且僅當

\[a_m<{1\over 2}\sum_{i=1}^ma_i\]

然后現在問題是如何最大化面積

有一個結論是面積最大當且僅當所有的頂點在同一個圓上,證明如下(然而我并看不懂就是了)

5ca5521650181.png

然后我們現在就是需要二分這個圓的半徑,這個要分兩種情況討論,圓心在多邊形內和多邊形外。

如果在多邊形內,那么我們看看當前所有木棒覆蓋的圓心角是否大于\(\pi\),如果是的話我們需要增大半徑,否則要縮小半徑

如果在多邊形外,我們看看\(a_1,...,a_{m-1}\)的木棒覆蓋的圓心角和\(a_m\)覆蓋的圓心角的大小之比。如果\(a_m\)覆蓋的圓心角更大,我們需要增大半徑,否則減少半徑

然后就直接暴力子集\(dp\)就可以了

//minamoto
#include<bits/stdc++.h>
#define R register
#define inf 0x3f3f3f3f
#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){R int res,f=1;R char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
const int N=15,M=(1<<12)+5;const double Pi=acos(-1.0),eps=1e-15;
inline int sgn(R double x){return x<-eps?-1:x>eps;}
inline double sqr(R double x){return x*x;}
int a[N],b[N],p[M],st[N][N],top[N];double d[M],g[M];
int n,lim,tot,ans,cnt;
bool ck1(double mid){double s=0;fp(i,1,tot-1)s+=asin(b[i]*0.5/mid);return sgn(s-asin(b[tot]*0.5/mid))>0;
}
bool ck2(double mid){double s=0;fp(i,1,tot)s+=asin(b[i]*0.5/mid);return sgn(Pi-s)>0;
}
int main(){
//  freopen("testdata.in","r",stdin);int T=read();while(T--){n=read();fp(i,0,n-1)a[i]=read();sort(a,a+n),lim=(1<<n);fp(i,1,lim-1){tot=d[i]=g[i]=cnt=0;fp(j,0,n-1)(i>>j&1)?b[++tot]=a[j],cnt+=a[j]:0;if(tot<3||cnt-b[tot]<=b[tot])continue;cnt=0;double Ri=0;if(!ck2(b[tot]*0.5)){for(R double l=b[tot]*0.5,r=10000,mid=(l+r)*0.5;++cnt<70;mid=(l+r)*0.5)ck2(mid)?Ri=r=mid:l=mid;fp(j,1,tot)g[i]+=sqrt(sqr(Ri)-sqr(b[j])*0.25)*b[j]*0.5;}else{for(R double l=b[tot]*0.5,r=10000,mid=(l+r)*0.5;++cnt<70;mid=(l+r)*0.5)ck1(mid)?Ri=r=mid:l=mid;fp(j,1,tot-1)g[i]+=sqrt(sqr(Ri)-sqr(b[j])*0.25)*b[j]*0.5;g[i]-=sqrt(sqr(Ri)-sqr(b[tot])*0.25)*b[tot]*0.5;}}fp(i,0,lim-1)d[i]=0;d[0]=1;fp(i,0,lim-1)if(sgn(d[i])>0)for(R int s=(lim-1)^i,j=s;j;j=(j-1)&s)if(sgn(g[j])&&cmax(d[i|j],d[i]*g[j]))p[i|j]=i;ans=1,tot=0,d[0]=0;fp(i,1,lim-1)sgn(d[i]-d[ans])>0?ans=i:0;printf("%.10lf\n",d[ans]);for(;ans;ans=p[ans])if(sgn(g[ans^p[ans]])>0){top[++tot]=0;for(R int i=0,t=ans^p[ans];i<n;++i)(t>>i&1)?st[tot][++top[tot]]=i:0;}printf("%d\n",tot);fp(i,1,tot){printf("%d ",top[i]);fp(j,1,top[i])printf("%d%c",a[st[i][j]]," \n"[j==top[i]]);}}return 0;
}

轉載于:https://www.cnblogs.com/bztMinamoto/p/10650701.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278016.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278016.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278016.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

tornado 08 數據庫-ORM-SQLAlchemy-表關系和簡單登錄注冊

tornado 08 數據庫-ORM-SQLAlchemy-表關系和簡單登錄注冊 引言 #在數據庫&#xff0c;所謂表關系&#xff0c;只是人為認為的添加上去的表與表之間的關系&#xff0c;只是邏輯上認為的關系&#xff0c;實際上數據庫里面的表之間并沒有所謂的表關系 一、一對一表關系 Module #需…

Teams的manifest文件開始支持多語言

Teams發展速度飛快&#xff0c;Teams app的manifest文件schema也迎來了版本1.5&#xff0c;在這個版本里&#xff0c;很大的一個改進是支持多語言。 讓我們一起來看看&#xff0c;如何在manifest文件里配置多語言。 1&#xff0c;我們需要先把manifest文件設置成v1.5 {"…

白白的(baibaide)

白白的&#xff08;baibaide&#xff09; 有一個長度為 $n$ 的序列 $a_1, a_2, \dots, a_n$&#xff0c;一開始每個位置都是白色。如果一個區間中每個位置都是白色&#xff0c;則稱這是一個白白的區間。如果一個白白的區間向左或向右延長后都不是白白的區間了&#xff0c;則稱這…

如何利用Python網絡爬蟲爬取微信朋友圈動態--附代碼(下)

前天給大家分享了如何利用Python網絡爬蟲爬取微信朋友圈數據的上篇&#xff08;理論篇&#xff09;&#xff0c;今天給大家分享一下代碼實現&#xff08;實戰篇&#xff09;&#xff0c;接著上篇往下繼續深入。一、代碼實現1、修改Scrapy項目中的items.py文件。我們需要獲取的數…

使用Adaptive cards來構建Teams app的界面

Teams app的task module十分好用&#xff0c;當用戶點擊了一個卡片上的按鈕是可以在Teams里彈出一個對話框&#xff0c;對話框的內容可以是開發人員自己的一個網頁頁面&#xff0c;或者是adaptive card。 在我的LuckyDraw bot里&#xff0c;我比較了這兩種的優勢和劣勢&#xf…

Boosting(提升方法)之GBDT

一、GBDT的通俗理解 提升方法采用的是加法模型和前向分步算法來解決分類和回歸問題&#xff0c;而以決策樹作為基函數的提升方法稱為提升樹&#xff08;boosting tree&#xff09;。GBDT(Gradient Boosting Decision Tree)就是提升樹算法的一種&#xff0c;它使用的基學習器是C…

CC攻擊原理及防范方法

一、 CC攻擊的原理&#xff1a; CC攻擊的原理就是攻擊者控制某些主機不停地發大量數據包給對方服務器造成服務器資源耗盡&#xff0c;一直到宕機崩潰。CC主要是用來消耗服務器資源的&#xff0c;每個人都有這樣的體驗&#xff1a;當一個網頁訪問的人數特別多的時候&#xff0c…

Team photo的新api

Graph API的更新速度真是快&#xff0c;今年9月中旬又增加了關于Team photo的兩個新的api。 https://docs.microsoft.com/en-us/graph/api/team-get-photohttps://docs.microsoft.com/en-us/graph/api/team-update-photo 今天就給大家介紹一下如何使用這兩個新的api。 實際上說…

BZOJ 1047: [HAOI2007]理想的正方形 單調隊列瞎搞

題意很簡明吧&#xff1f; 枚舉的矩形下邊界和右端點即右下角&#xff0c;來確定矩形位置&#xff1b; 每一個縱列開一個單調隊列&#xff0c;記錄從 i-n1 行到 i 行每列的最大值和最小值&#xff0c;矩形下邊界向下推移的時候維護一下&#xff1b; 然后在記錄的每一列的最大值…

分享到Teams

在今年三月份末&#xff0c;Teams的官方文檔推出了一個新功能&#xff1a;將網頁&#xff08;一個URL&#xff09;分享到Teams里。 也就是說開發人員現在可以很方便的開發一個頁面&#xff0c;頁面里有一個Teams的圖標&#xff0c;當訪問此頁面的最終用戶點擊這個圖標后可以將…

xshell使用xftp傳輸文件和使用pure-ftpd搭建ftp服務

xshell使用xftp傳輸文件 首先安裝xftp&#xff0c;然后建立會話&#xff0c;步驟和xshell一樣&#xff0c;在使用的時候用CtrlALTf呼出&#xff0c;左邊是windows桌面&#xff0c;右面是linux&#xff0c;雙擊或拖拽都可以實現命令互傳。 使用pure-ftpd搭建ftp服務 首先安裝yum…

MySQL命令行查詢亂碼解決方法

轉自Agoly的博客&#xff0c;原文鏈接https://www.cnblogs.com/qmfsun/p/4846467.html 感謝博主Agoly這篇文章說的很詳細很透徹。 MySQL會出現中文亂碼的原因不外乎下列幾點&#xff1a;1.server本身設定問題&#xff0c;例如還停留在latin1 2.table的語系設定問題(包含charact…

Teams Bot如何判斷用戶所在的時區

一說到時間&#xff0c;就會聯想到時區&#xff0c;夏令時等頭痛的問題&#xff0c;不同國家有不同國家的規定。如果你希望你的Teams Bot可以判斷出當前用戶所在的時區&#xff0c;從而可以針對性的進行一些處理時&#xff0c;你要做好心理準備&#xff0c;這個復雜程度遠遠超過…

『流暢的Python』第1~4章筆記_數據結構、編碼

由于1~4章內容零散且基礎&#xff0c;所以統計一下涉及到的內容&#xff0c;記錄一下&#xff0c;方便查閱&#xff08;第一張圖右鍵新頁面打開即可看到清晰大圖&#xff09;

docker 安裝ELK

參考文檔&#xff1a; Docker ELK使用文檔&#xff1a;http://elk-docker.readthedocs.io/ 1.拉取鏡像 查看 Docker Hub 的鏡像 docker search elk 拉取鏡像 sudo docker pull sebp/elk 2.啟動容器 docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -p 4560:4560 -it --na…

在Teams Hackathon上介紹LuckyDraw

很榮幸有機會在今天的Teams Hackathon上介紹LuckyDraw這個teams app。 因為到場的都是各路開發高手&#xff0c;所以當時在準備這個ppt的時候特別增加了難度等級&#xff0c;哈哈。 從如何構建云原生的Teams app&#xff0c;到IaC&#xff0c;重點講了如何開發一個面向全球用戶…

Word 2010 制作文檔結構之圖標自動編號設置

注意&#xff1a; 使用圖片自動編號時&#xff0c;如果文檔標題使用的樣式是通過“將所選內容保存為新快速樣式”所生成的樣式&#xff0c;則圖片自動編號不會生效 因此設置標題樣式時&#xff0c;不要 新建樣式&#xff0c;直接使用word預設的“標題 1”樣式和“標題 2”樣式即…

ubuntu linux下建立stm32開發環境: 程序燒錄 openocd+openjtag

原文出處&#xff1a; http://blog.csdn.net/embbnux/article/details/17619621 之前建立stm32開發環境,程序也已經編譯好生成main.bin,接下來就是要把該文件燒錄到stm32上.在linux下給arm燒錄程序主要使用openocd,這個軟件開源,而且支持眾多芯片,從ARM9到A8都可以,當然STM32也…

在Teams中對網站的URL特殊解析

Teams中有一個不太被大家注意的擴展點&#xff0c;名字叫Link unfurling&#xff0c;就是對于一些特殊域名的URL進行特別的解釋。 可能這么說&#xff0c;大家還是無法理解&#xff0c;我們看一下下面這個圖&#xff0c;當用戶在message輸入框中輸入了一竄url后&#xff0c;Te…

Wireshark 在Windows下的安裝

1、wireshark官網地址&#xff1a;https&#xff1a;//www.wireshark.ort/ 下載抓包驅動&#xff1a;windows使用winpcap&#xff0c;Linux使用libcap2、安裝下載好的wireshark程序包&#xff1a;3、安裝winpcap插件&#xff1a;4、安裝USBPcap插件&#xff1a;5、安裝完成&…