2022 ICPC Gran Premio de Mexico 1ra Fecha 题解
A
线性基
由于数组异或和固定,因此异或和为奇数的位置可以不用考虑,无论如何分,总是只能有1个为奇数,总贡献不变。
考虑异或和为偶数的位置,利用线性基求其中一部分尽可能大的结果,另一部分结果相同。
#include<iostream>#define lint int64_t
#define ulint uint64_t#define maxn 100005
#define maxb 50usingnamespacestd;int n;
ulint a[maxn],s,kotae;
ulint p[maxb+1];void insert(ulint x){for(int i=maxb;~i;i--){if((1llu<<i)&s) continue;if((1llu<<i)&x){if(!p[i]){p[i]=x;break;}x^=p[i];}}
}signed main(){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%llu",&a[i]);s^=a[i];}for(int i=1;i<=n;i++){a[i]&=(~s);}for(int i=1;i<=n;i++){insert(a[i]);}for(int i=maxb;~i;i--){if((kotae^p[i])>kotae) kotae^=p[i];}kotae=kotae+(kotae^s);printf("%llu\n",kotae); end:return EOF+1;
}
B
维护每天可行的点。
利用dp, d p i , j dp_{i,j} dpi,j表示点i,且距离当天建造的位置距离为j,这样的最小天数,并转移,一旦步数超出就停止
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define inf 0x3f3f3f3f
#define mod 1000000007
#define pb push_back
typedef pair<int,int> pir;
string sstr[]={"NO\n","YES\n"};
class node
{public:int x;int step;int dis;bool operator<(node no)const{return step>no.step;}
};
const int N=100010;
int T,n,k;
vector<int> vec[N];
int dp[N][110];//点i,获得距离源点长度为j的最小步数
queue<node> q;set<int> st;
vector<int> ans;
int vis[N];
signed main()
{cin>>n>>k;for(int i=1;i<n;i++){int u,v;cin>>u>>v;vec[u].pb(v);vec[v].pb(u);}memset(dp,0x3f,sizeof(dp));st.insert(1);vis[1]=1;for(int i=0;i<n;i++){//先考虑第i步选择什么数字assert(st.size()!=0);int cur=*st.begin();st.erase(st.begin());ans.push_back(cur);dp[cur][0]=i+1;q.push(node{cur,i+1,0});while(!q.empty()){auto tmp=q.front();int u=tmp.x;int dis=tmp.dis;if(!vis[u]){st.insert(u);vis[u]=1;}q.pop();if(dis<k){//不加步数for(auto j:vec[u]){if(dp[j][dis+1]>dp[u][dis]){dp[j][dis+1]=dp[u][dis];q.push(node{j,tmp.step,dis+1});}}}}}for(auto j:ans) cout<<j<<' ';
}
C
由于数组有序,线段树整体二分即可
#include <iostream>
#include <algorithm>
#define ls (node << 1)
#define rs (node << 1 | 1)
#define mid (l+r>>1)
const int MN = 5e5+7;using ll = long long;
#define int ll
using namespace std;
inline int read(){int x=0,fh=1; char ch=getchar(); while(!isdigit(ch)){if(ch=='-') fh=-1; ch=getchar();} while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-'0'; ch=getchar();} return x*fh;}
struct Node {int l, r;ll cnt, add;bool cval;
}tree[MN*4];
ll nums[MN];
int len, n;
void f(int node, int k) {tree[node].cnt+=1ll*(tree[node].r-tree[node].l+1)*k;tree[node].add+=k;
}
void f_c(int node) {tree[node].add = tree[node].cnt = 0;tree[node].cval = 1;
}
void push_down(int node) {if (tree[node].cval) {f_c(ls);f_c(rs);tree[node].cval = 0;}if (tree[node].add) {f(ls, tree[node].add);f(rs, tree[node].add);tree[node].add = 0;}
}
void push_up(int node) {tree[node].cnt = tree[ls].cnt+tree[rs].cnt;
}
void build(int node, int l, int r) {tree[node].l = l, tree[node].r = r;if (l==r) return;build(ls, l, mid);build(rs, mid+1, r);
}
int query(int node, int k) {if (tree[node].l==tree[node].r) return tree[node].l;push_down(node);if (tree[ls].cnt>=k) return query(ls, k);return query(rs, k-tree[ls].cnt);
}void modify(int node, int L, int R, int k) {if (tree[node].l>=L && tree[node].r<=R) {f(node, k);return;}if (tree[node].l>R || tree[node].r<L) return ;push_down(node);modify(ls, L, R, k);modify(rs, L, R, k);push_up(node);
}signed main() {// ios::sync_with_stdio(false);cin.tie(0);int q;// cin >> n >> q;n = read(), q = read();for (int i = 1; i<=n; ++i) nums[i] = read();build(1, 1, n);int l, r, t, k;while (q--) {// cin >> t;t = read();// cin >> l >> r;for (int i = 1; i<=t; ++i) {l = read(), r = read(), k = read();modify(1, l, r, k);}if (tree[1].cnt%2) {printf("%lld\n", nums[query(1, tree[1].cnt/2+1)]);} else {// cout << (nums[query(1, tree[1].cnt/2)]+nums[query(1, tree[1].cnt/2+1)])/2.0 << "\n";ll a = nums[query(1, tree[1].cnt/2)], b = nums[query(1, tree[1].cnt/2+1)];printf("%lld.%d\n", (a+b)/2, (a+b)%2? 5:0);}f_c(1);}return 0;
}
D
矩阵快速幂板子
#include<iostream>#define lint int64_t#define maxn 102
#define mod 1000000007usingnamespacestd;class Matrix{public:lint a[maxn][maxn];Matrix(){for(int i=0;i<maxn;i++){for(int j=0;j<maxn;j++){a[i][j]=0;}}}Matrix operator*(Matrix B){Matrix ans;for(int i=0;i<maxn;i++){for(int j=0;j<maxn;j++){for(int k=0;k<maxn;k++){ans.a[i][j]=(ans.a[i][j]+a[i][k]*B.a[k][j]%mod)%mod;}}}return move(ans);}
};int n,m,b;
Matrix A;signed main(){scanf("%d %d %d",&n,&m,&b);int u,v;while(m--){scanf("%d %d",&u,&v);A.a[u][v]++;A.a[v][u]++;}Matrix ans;for(int i=0;i<maxn;i++) ans.a[i][i]=1;for(;b;A=A*A,b>>=1) if(b&1) ans=ans*A;lint kotae=0;for(int i=1;i<maxn;i++){kotae=(kotae+ans.a[1][i])%mod;}printf("%d\n",kotae);end:return EOF+1;
}
E
f i f_i fi表示选择 i i i个数的方案数,则
f i = i n − ∑ j = 1 i − 1 C i j ∗ f j f_i=i^n-\sum_{j=1}^{i-1} C_i^j *f_j fi=in−∑j=1i−1Cij∗fj
O ( n 2 ) O(n^2) O(n2)转移即可
#include<iostream>#define lint int64_t#define inv(x) qow(x,mod-2)#define maxn 2000006
#define maxm 5003
#define mod 1000000007usingnamespacestd;lint fac[maxn],invfac[maxn];lint qow(lint a,lint b){lint ans=1;for(;b;a=a*a%mod,b>>=1) if(b&1) ans=ans*a%mod;return ans;
}void prework(){fac[0]=1;for(int i=1;i<maxn;i++){fac[i]=fac[i-1]*i%mod;}invfac[maxn-1]=inv(fac[maxn-1]);for(int i=maxn-2;~i;i--){invfac[i]=invfac[i+1]*(i+1)%mod;}}lint Binomial(lint a,lint b){if(a<0||b<0||b>a) return 0;return fac[a]*invfac[b]%mod*invfac[a-b]%mod;
}lint n,m,k;
lint f[maxm];signed main(){prework();cin>>n>>m>>k;for(int i=1;i<=k;i++){f[i]=qow(i,n)%mod;for(int j=1;j<i;j++){f[i]=(f[i]-Binomial(i,j)*f[j]%mod+mod)%mod;}}cout<<f[k]*Binomial(m,k)%mod<<endl;end:return EOF+1;
}
F
单段就是斐波那契,矩阵快速幂分段加速即可
#pragma GCC optimize("O3")#include<iostream>
#include<algorithm>
#include<string.h>#define lint int64_t#define maxm 1000006
#define mod 1000000007llusingnamespacestd;class Matrix{public:lint a[4];Matrix(){memset(a,0,sizeof(a));}Matrix(int a00,int a01,int a10,int a11){a[0]=a00;a[1]=a01;a[2]=a10;a[3]=a11;}void eye(){a[0]=a[3]=0;a[1]=a[2]=1;}Matrix operator*(Matrix B){lint a0=(a[0]*B.a[0]+a[1]*B.a[2])%mod;lint a1=(a[0]*B.a[1]+a[1]*B.a[3])%mod;lint a2=(a[2]*B.a[0]+a[3]*B.a[2])%mod;lint a3=(a[2]*B.a[1]+a[3]*B.a[3])%mod;return move(Matrix(a0,a1,a2,a3));}};Matrix qow(Matrix A,lint b){if(b<0) return move(Matrix());Matrix ans(1,0,0,1);for(;b;A=A*A,b>>=1) if(b&1) ans=ans*A;return move(ans);
}int n,m;
int a[maxm];Matrix f=Matrix(1,1,1,0);inline int read(){int x=0,fh=1;char ch=getchar();while(!isdigit(ch)){//if(ch=='-') fh=-1;ch=getchar();}while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}return x*fh;
}signed main(){scanf("%d %d",&n,&m);//n=1000000000;//m=1000000;int pos=0;Matrix s=Matrix(1,0,0,1);lint kotae=1;a[0]=-1;for(int i=1;i<=m;i++){a[i]=read();//scanf("%d",&a[i]);//a[i]=999*i;}a[m+1]=n+1;sort(a+1,a+m+1);m++;for(int i=1;i<=m;i++){switch(a[i]-a[i-1]){case 1:{kotae=0;break;}case 2:{}case 3:{break;}default:{s=qow(f,a[i]-a[i-1]-3);kotae=kotae*(s.a[0]+s.a[1])%mod;break;}}if(!kotae) break;}printf("%lld\n",kotae);end:return EOF+1;
}
/*11 3
1 7 10*/
G
二分答案,需要判定圆是否有公共部分。
显然最终公共部分如果有,一定在某个圆的圆弧上,枚举圆并维护合法的圆弧段即可。
(当然也可以直接维护圆面积并)
#include<iostream>
#include<vector>
#include<iomanip>
#include<cmath>//#define double long double#define maxn 102
#define inf 1e10
#define eps 5e-5
#define pi 3.1415926535897931usingnamespacestd;class Point{public:double x,y;Point(double x_=0,double y_=0){x=x_,y=y_;}Point operator-(Point B){return Point(x-B.x,y-B.y);}}p[maxn];double len(Point A,Point B){Point C=A-B;return sqrt(C.x*C.x+C.y*C.y);
}int n;
int stone;
double w[maxn];vector<pair<double,double>> seg;
vector<pair<double,double>> tem;void add(double l,double r){tem.clear();for(pair<double,double>& it:seg){if(l<r){if(l>it.second||r<it.first){continue;}else{tem.push_back({max(l,it.first),min(r,it.second)});}}else{if(l>it.second&&r<it.first){continue;}else{if(l<=it.second) tem.push_back({max(l,it.first),it.second});if(r>=it.first) tem.push_back({it.first,min(r,it.second)});}} }seg=tem;
}double phi[maxn],theta[maxn];
bool valid[maxn];
double l[maxn],r[maxn];bool judge(double radius){double r1=radius/w[stone];for(int i=0;i<n;i++){if(i==stone) continue;valid[i]=true;double nagasa=len(p[i],p[stone]);double r2=radius/w[i];//printf("r1=%.4lf r2=%.4lf éL¤µ=%.4lf\n",r1,r2,nagasa);if(r2-r1>=nagasa){valid[i]=false;continue;}if(r1+r2<nagasa){return false;}phi[i]=atan2(p[i].y-p[stone].y,p[i].x-p[stone].x);if(phi[i]<0) phi[i]+=2*pi;theta[i]=acos((r1*r1+nagasa*nagasa-r2*r2)/(2*r1*nagasa));//printf("phi[i]=%.4lf theta[i]=%.4lf\n",phi[i]/pi*180,theta[i]/pi*180);}seg.clear();seg.push_back({0,2.*pi});for(int i=0;i<n;i++){if(valid[i]){l[i]=phi[i]-theta[i];r[i]=phi[i]+theta[i];while(l[i]<0) l[i]+=2.*pi;while(r[i]>2.*pi) r[i]-=2.*pi;//printf("l=%.4lf r=%.4lf\n",l[i]/pi*180,r[i]/pi*180);add(l[i],r[i]);// for(pair<double,double>& it:seg){//
// printf("(%.4lf %.4lf)\n",it.first/pi*180,it.second/pi*180);
// }}}return !seg.empty();
}bool check(double radius){bool ans=false;for(int i=0;i<n;i++){stone=i;valid[i]=false;ans=ans||judge(radius);}return ans;
} signed main(){cin>>n;for(int i=0;i<n;i++){cin>>p[i].x>>p[i].y>>w[i];}double l=0,r=inf,mid;int cnt=0;while(r-l>eps){//cout<<l<<' '<<r<<endl;double mid=(l+r)/2.;cnt++;if(cnt>=128) break;if(check(mid)){r=mid;}else{l=mid;}}cout<<fixed<<setprecision(12);cout<<l+eps<<endl;//judge(7.6);end:return EOF+1;
}
/*
3
-4 2 3
4 -2 1
0 10 1*/
H
签到
#include <iostream>
using namespace std;int main() {int n;cin >> n;int tmp = n/4;n%=4;if (n>=2) cout << tmp*(tmp+1);else cout << tmp*tmp;return 0;
}
I
签到
#include <iostream>
using namespace std;int main() {int n;cin >> n;int p = n, cnt = 0;while (p) {int tmp = p%10;p/=10;if (tmp) cnt+=n%tmp==0;}cout << cnt;return 0;
}
J
最大流板子。凭借优越的n^3复杂度成功卡过
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define inf 0x3f3f3f3f3f3f3f3f
#define mod 1000000007
typedef pair<int,int> pir;
string sstr[]={"No\n","Yes\n"};
const int N=500010;
int n,m,s,t,cnt=1;//从2开始,保证相反边只有低位不同
int to[N],nxt[N],head[N],now[N];//now:当前弧优化
ll wei[N],dis[N],ans,gnum;
void add(int u,int v,ll w)
{to[++cnt]=v;wei[cnt]=w;nxt[cnt]=head[u];head[u]=cnt;//反向边 to[++cnt]=u;wei[cnt]=0;nxt[cnt]=head[v];head[v]=cnt;
}
bool bfs()//分层
{for(int i=0;i<=gnum;i++) dis[i]=inf;dis[s]=1;now[s]=head[s];queue<int> q;q.push(s);bool flag=0;while(!q.empty()){int x=q.front();q.pop();for(int i=head[x];i;i=nxt[i]){int j=to[i];if(wei[i]&&dis[j]==inf){q.push(j);now[j]=head[j];dis[j]=dis[x]+1;if(j==t) return 1;}}}return 0;
}
ll dfs(ll x,ll sum)//当前节点,以及当前节点的总流量
{if(x==t) return sum;ll out=0;//out为结果for(int i=now[x];i&∑i=nxt[i]){now[x]=i;int j=to[i];if(wei[i]>0&&dis[j]==dis[x]+1){ll k=dfs(j,min(sum,wei[i]));//递归jif(k==0) dis[j]=inf;//剪枝,去除不可能的点wei[i]-=k;wei[i^1]+=k;out+=k;sum-=k;}}return out;//总流量
}
signed main()
{cin>>n>>m;s=n+m+1,t=n+m+2;gnum=n+m+2;for(int i=1;i<=n;i++){int k;cin>>k;for(int j=1;j<=k;j++){int tmp;cin>>tmp;add(i,tmp+n,1);}}for(int i=1;i<=n;i++) add(s,i,1);for(int i=n+1;i<=n+m;i++) add(i,t,1);while(bfs()){ans+=dfs(s,inf);}cout<<m-ans<<'\n';
}
K
签到
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define inf 0x3f3f3f3f
#define mod 1000000007
#define pb push_back
typedef pair<int,int> pir;
string sstr[]={"NO\n","YES\n"};
const int N=200010;
int T,n,m,q;
int a[N];
bool dp[N];
signed main()
{cin>>q>>n;for(int i=1;i<=n;i++) cin>>a[i];dp[0]=1;for(int i=1;i<=50100;i++){for(int j=1;j<=n;j++){if(i>=a[j]) dp[i]|=dp[i-a[j]];}}for(int i=1;i<=q;i++){int tmp;cin>>tmp;for(int j=tmp;j<=tmp+100;j++){if(dp[j]){cout<<j-tmp<<'\n';break;}}}
}
L
维护以每个位置为右端点的区间的区间和的总和。以及左端点。以及前缀和等。
这样可以 O ( 1 ) O(1) O(1)计算出左端点在 ( l 1 , l 2 ) (l_1,l_2) (l1,l2)区间,且右端点在 ( r 1 , r 2 ) (r_1,r_2) (r1,r2)区间的所有区间的区间和的总和。
首先求出所有区间和的总和。
考虑分治,当前区间有若干最大值,需要求他们的额外贡献,等价于对每个相邻的最大值,求包含他们的(在当前区间范围内的)所有区间的区间和的总和。然后以最大值为界分治即可。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define inf 0x3f3f3f3f
#define mod 1000000007
#define pb push_back
typedef pair<int,int> pir;
string sstr[]={"NO\n","YES\n"};
const int N=1000010;
const int P=1000000007;
int norm(int x) {if (x < 0) {x += P;}if (x >= P) {x -= P;}return x;
}
template<class T>
T power(T a, ll b) {T res = 1;for (; b; b /= 2, a *= a) {if (b % 2) {res *= a;}}return res;
}
struct Z {int x;Z(int x = 0) : x(norm(x)) {}Z(ll x) : x(norm(x % P)) {}int val() const {return x;}Z operator-() const {return Z(norm(P - x));}Z inv() const {assert(x != 0);return power(*this, P - 2);}Z &operator*=(const Z &rhs) {x = (ll)(x) * rhs.x % P;return *this;}Z &operator+=(const Z &rhs) {x = norm(x + rhs.x);return *this;}Z &operator-=(const Z &rhs) {x = norm(x - rhs.x);return *this;}Z &operator/=(const Z &rhs) {return *this *= rhs.inv();}friend Z operator*(const Z &lhs, const Z &rhs) {Z res = lhs;res *= rhs;return res;}friend Z operator+(const Z &lhs, const Z &rhs) {Z res = lhs;res += rhs;return res;}friend Z operator-(const Z &lhs, const Z &rhs) {Z res = lhs;res -= rhs;return res;}friend Z operator/(const Z &lhs, const Z &rhs) {Z res = lhs;res /= rhs;return res;}friend std::istream &operator>>(std::istream &is, Z &a) {ll v;is >> v;a = Z(v);return is;}friend std::ostream &operator<<(std::ostream &os, const Z &a) {return os << a.val();}
};int n;
Z a[N];
Z tl[N],tr[N];
Z sl[N],sr[N];
Z ans=0;
set<int> mp;//记录断点
vector<pir> vec;
bool cmp(pir p1,pir p2)
{if(p1.first!=p2.first) return p1.first>p2.first;else return p1.second<p2.second;
}
int cal(int l,int li,int ri,int r)
{assert(1<=l&&l<=li&&li<ri&&ri<=r&&r<=n);//左端点区间[l,li],右端点区间[ri,r]Z ret=0;Z totl=(tl[li]-tl[l-1])-(sl[li]-sl[l-1])*(l-1);Z totr=(tr[ri]-tr[r+1])-(sr[ri]-sr[r+1])*(n-r);ret=totl*(r-ri+1)+totr*(li-l+1);if(ri-1>=li+1) ret+=(sl[ri-1]-sl[li])*(li-l+1)*(r-ri+1);//中间部分直接乘上区间数量//cout<<l<<' '<<li<<' '<<ri<<' '<<r<<' '<<totl<<' '<<totr<<' '<<tr[ri]<<' '<<tr[r+1]<<' '<<ret.x<<'\n';return ret.x;
}
signed main()
{ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);cin>>n;for(int i=1;i<=n;i++) cin>>a[i].x,vec.push_back(pir(a[i].x,i));sort(vec.begin(),vec.end(),cmp);for(int i=1;i<=n;i++){sl[i]=sl[i-1]+a[i];tl[i]=tl[i-1]+a[i]*i;}for(int i=n;i>=1;i--){sr[i]=sr[i+1]+a[i];tr[i]=(n-i+1);tr[i]*=a[i];tr[i]+=tr[i+1];}for(int i=1;i<=n;i++){ans+=tl[i];}mp.insert(0);mp.insert(n+1);int p=0,q=0;while(p<vec.size()){while(q<vec.size()&&vec[q].first==vec[p].first) q++;//区间[p,q-1]数字相同int cp=p,cq=p;while(cp<q){auto it=mp.upper_bound(vec[cp].second);//下一个位置int cr=*it;it--;int cl=*it;//左区间while(cq<q&&vec[cq].second<cr) cq++;//区间[cp,cq-1]在同一个下面for(int i=cp;i<cq-1;i++){ans+=cal(cl+1,vec[i].second,vec[i+1].second,cr-1);}cp=cq;}//区间处理完毕for(int i=p;i<q;i++) mp.insert(vec[i].second);p=q;}cout<<ans<<'\n';
}
/*
3
1 1 1*/
2022 ICPC Gran Premio de Mexico 1ra Fecha 题解相关推荐
- 2022 ICPC Gran Premio de Mexico 1ra Fecha(一)
今天大部分时间都花在了上一场沈阳站的L题上了,一个树上背包+容斥原理,看了好久才理解,就不硬敲上了,再想几天在写题解.然后今天自己写了场ICPC墨西哥站的 ICPC Gran Premio de Me ...
- 2022 ICPC Gran Premio de Mexico 1ra Fecha (B、D、E、F)
小技巧: stoi(str,0,2) 将从0开始的二进制串转化为十进制串 不是标准函数,慎用(一般应该没问题吧--) 本次补的题应该都是铜.银牌题,可能欧洲场简单很多 D. Different Pas ...
- 训练记录番外篇(2):2022 ICPC Gran Premio de Mexico 2da Fecha
2022 ICPC Gran Premio de Mexico 2da Fecha 2022.10.3 之前训得ak场,个人认为很edu. (顺便一提,可能这个训练记录番外系列的比赛都非常edu,十分 ...
- 2021 ICPC Gran Premio de Mexico 1ra Fecha
C.Cypher Decypher 题意 找 [ i , j ] [i,j] [i,j]区间中有多少个质数 思路 数据范围为 1 ≤ i ≤ j ≤ 1 0 6 1\le i\le j\le 10^6 ...
- 2022 ICPC Gran Premio de Mexico 2da Fecha Final standings - K. Krystalova‘s Trivial Problem
K. Krystalova's Trivial Problem time limit per test1 second memory limit per test256 megabytes input ...
- 2023 ICPC Gran Premio de Mexico 1ra Fecha
待更新 目录 1 A Aliases B Bucket storing D Dynamic Collection E Employees Bonus G Growing game J Jumping ...
- 2022 ICPC Gran Premio de Mexico Repechaje 题解
目录 A. Average Walk(签到) 题意: 思路: 代码: C. Company Layoffs(签到) 题意: 思路: 代码: D. Denji1(模拟/二分) 思路: 代码: K. Ke ...
- 【2021 ICPC Gran Premio de Mexico 2da Fecha F】Flipped Factorization 题解
题目大意 设 x x x 的质因数分解为 p 1 c 1 p 2 c 2 ⋯ p m c m p_1^{c_1}p_2^{c_2}\cdots p_m^{c_m} p1c1p2c2⋯pmc ...
- 2021 ICPC Gran Premio de Mexico 2da Fecha(C,D,G,I)
题目 C. Cut the Deck D. Dislike the Raisins G. Grid of Letters I. Integer Multiplicative Persistence C ...
最新文章
- 一个C#睡觉前的夜晚
- 高亚芳 mysql_MySQL · 专家投稿 · MySQL数据库SYS CPU高的可能性分析
- Boost::context模块callcc的回声测试程序
- asp.net,关于Listview+DataPager控件使用
- mysql三高讲解(二):2.1 索引组织表
- 移动机器人构型对比分析
- Android自定义ToolBar布局
- Gson之TypeAdapterFactory
- 2021年上半年软考-网络工程师答案及解析(中级)
- 4月第3周业务风控关注 |国家网信办启动小众即时通信工具专项整治
- SEO基础知识过度优化的三大问题
- 线性代数 向量组 线性相关与表出 秩 解的关系总(一)
- 5.Unity2D 横版 对象池的创建
- Shell grep命令
- CF1004D Sonya and Matrix
- visual添加mysql.dll_MySQL.VisualStudio.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
- AutoCAD帮助文档下载
- 数字IC后端实现TOP Floorplan专家秘籍
- android sdl编译
- electron实现远程更新
热门文章
- Android 针对华为手机调用裁剪出现圆形裁剪框的处理
- Linux为什么不怕病毒
- 计算机如何制作表格基础,计算机基础教程(Word表格制作)
- python py如何变成exe_python如何将py变成exe文件
- Arturia Buchla Easel V for Mac - Buchla音乐画架插件
- 数据文化 | Uber的数据治理
- excel怎么从身份证中提取性别?
- 三张简图搞懂GBDT
- 【获奖案例巡展】信创先锋之星——云上贵州信创工程中心大数据中台
- [暑假]简单认识一下常用的字体 <<微软雅黑 黑体 和 宋体>>