2022“杭电杯”中国大学生算法设计超级联赛(2)题解报告
1002 C++ to Python
题意:
在python中使用(...)来匹配C++中的std::make_tuple(...)
题解:
签到,只要无视字母、下划线、冒号后输出即可。
代码:
#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
#define int long long
using namespace std;string s;void solve(){cin >> s;int len = s.length();for(int i = 0; i < len; i++){if(s[i] == '(' || s[i] == ')' || s[i] == ',' || s[i] == '-') cout << s[i];if(s[i] >= '0' && s[i] <= '9') cout << s[i];}cout << '\n';
}signed main(){int t = 1;cin >> t;while(t--){solve();}
}
1007 Snatch Groceries
题意:
有n个人想获取物资,每个人给定一个时间区间,如果两人的时间区间没有交集,那就可以确定两人的先后关系。电脑按照时间顺序发放物资,遇到无法确定先后关系的情况,停止发放。问有几个人能拿到物资。
(原题题面巨长,他好心写了“TL;DR”, 意为 Too Long; Didn't Read, 但是我没看懂)
题解:
按时间区间左端点为第一关键字,右端点第二关键字排序,然后从第一个往后一边扫一边验证即可。
代码:
#include<iostream>
#include<algorithm>
#define int long long
using namespace std;const int N = 1e5 + 10;int n;struct time{int l, r;bool operator < (const time x) const{return l < x.l || (l == x.l && r < x.r);}
}a[N];void solve(){cin >> n;for(int i = 1; i <= n; i++){cin >> a[i].l >> a[i].r;}sort(a + 1, a + 1 + n);int ans = 0;for(int i = 1; i <= n; i++){if(i == n){ans ++;break;}if(a[i + 1].l > a[i].r) ans ++;else break;}cout << ans << '\n';
}signed main(){int t = 1;cin >> t;while(t--){solve();}
}
1012 Luxury cruise ship
题意:
给定N,每天可以存7, 31, 365, 最少需要几天可以刚好存到N, 不行则输出-1。
题解:
79205为一周期,可以使用背包或bfs预处理,再进行计算。
(代码为bfs预处理)
代码;
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<queue>
#define int long long
using namespace std;const int N = 79205 + 10;int n, ans[N], vis[N];struct node{int num, cnt;
};void bfs(){memset(ans, -1, sizeof(ans));memset(vis, 0, sizeof(vis));queue<node> q;q.push({0, 0});while(!q.empty()){node x = q.front(); q.pop();if(vis[x.num]) continue;vis[x.num] = 1;ans[x.num] = x.cnt;if(x.num + 7 <= 79205) q.push({x.num + 7, x.cnt + 1});if(x.num + 31 <= 79205) q.push({x.num + 31, x.cnt + 1});if(x.num + 365 <= 79205) q.push({x.num + 365, x.cnt + 1});}
}void solve(){cin >> n;if(ans[n % 79205] != -1)cout << n / 79205 * (7 * 31) + ans[n % 79205] << '\n';else cout << -1 << '\n';
}signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);bfs();int t = 1;cin >> t;while(t--){solve();}
}
1009 ShuanQ
题意:
又一个未知的模数M,P、Q是关于M的逆元关系。给定加密与解密公式分别为:
encrypted_data = raw_data × P mod M
raw_data = encrypted_data × Q mod M
给定P、Q和encrypted_data,问能否确定raw_data,无解则输出“shuanQ”。
其中,M>P、Q且为素数。
(我真的shaunQ)
题解:
由逆元关系我们可以知道:
P × Q − 1 = k × M , k ≥ 1
于是我们可以枚举k,用得到的合法的M来计算raw_data,并验证是否有唯一解。
代码:
#include<iostream>
#include<algorithm>
#define int long long
using namespace std;int x, p, q;void solve(){cin >> p >> q >> x;int km = p * q - 1, ans = -1, m;for(int i = 2; i * i <= km; i++){if(km % i) continue;while(km % i == 0) km /= i;m = i; }if(km > 1) m = km;if(q < m && p < m) ans = x * q % m;if(~ans) cout << ans << '\n';else cout << "shuanQ\n";
}signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t = 1; cin >> t;while(t--){solve();}
}
1001 Static Query on Tree
题意:
给定一棵n个节点的树,q次询问,每次询问给定三个节点的集合A,B,C,问树中有多少个节点是可以从A中至少一点和B中至少一点到达,并且到达C中至少一点。
题解:
将A和B中每个节点到根节点打上A和B的标记,将C中的每个节点及他们的子树打上C标记,统计同时有A,B,C标记的节点数即可。
代码:
#include<iostream>
#include<vector>
#include<bitset>
using namespace std;
#define int long long
#define lson (p << 1)
#define rson (p << 1 | 1)const int N = 2e5 + 10;struct tree{int mx[3], mn[3], flag[3];
};int tot = 0, fa[N], son[N], siz[N], top[N], dep[N];
int dfn[N], rnk[N], a[3][N];
vector<int> edg[N];
tree tr[N << 2];int n, m[3];struct Tree{
#define lson (p << 1)
#define rson (p << 1 | 1)void dfs1(int x){siz[x] = 1, son[x] = -1;for(int to : edg[x]){if(to == fa[x]) continue;dep[to] = dep[x] + 1;fa[to] = x;dfs1(to);siz[x] += siz[to];if(son[x] == -1 || siz[to] > siz[son[x]]) son[x] = to;}
}void dfs2(int x, int t){top[x] = t;dfn[x] = ++tot;rnk[tot] = x;if(son[x] == -1) return;dfs2(son[x], t);for(int to : edg[x]){if(to == fa[x] || to == son[x]) continue;dfs2(to, to);}
}void pushup(int p){for(int i = 0; i < 3; i++){tr[p].mx[i] = tr[lson].mx[i] | tr[rson].mx[i];tr[p].mn[i] = tr[lson].mn[i] & tr[rson].mn[i];}
}void pushdown(int p){for(int i = 0; i < 3; i++){if(tr[p].flag[i] == 0) continue;tr[lson].mn[i] = tr[p].flag[i] - 1;tr[rson].mn[i] = tr[p].flag[i] - 1;tr[lson].mx[i] = tr[p].flag[i] - 1;tr[rson].mx[i] = tr[p].flag[i] - 1;tr[lson].flag[i] = tr[p].flag[i];tr[rson].flag[i] = tr[p].flag[i];tr[p].flag[i] = 0;}
}void update(int s, int t, int x, int y, int l = 1, int r = n, int p = 1){if(s <= l && r <= t){tr[p].mx[x] = y;tr[p].mn[x] = y;tr[p].flag[x] = y + 1;return;}if(tr[p].flag[0] || tr[p].flag[1] || tr[p].flag[2]) pushdown(p);int mid = (l + r) >> 1;if(s <= mid) update(s, t, x, y, l, mid, lson);if(mid < t) update(s, t, x, y, mid + 1, r, rson);pushup(p);
}int query(int l = 1, int r = n, int p = 1){if(tr[p].mn[0] && tr[p].mn[1] && tr[p].mn[2]) return r - l + 1;if(!tr[p].mx[0] || !tr[p].mx[1] || !tr[p].mx[2]) return 0;if(l == r) return 0;if(tr[p].flag[0] || tr[p].flag[1] || tr[p].flag[2]) pushdown(p);int mid = (l + r) >> 1;int res = 0;res += query(l, mid, lson);res += query(mid + 1, r, rson);return res;
}void up(int x, int y, int z, int zz){while(top[x] != top[y]){if(dep[top[x]] < dep[top[y]]) swap(x, y);update(dfn[top[x]], dfn[x], z, zz);x = fa[top[x]];}if(dfn[x] < dfn[y]) update(dfn[x], dfn[y], z, zz);else update(dfn[y], dfn[x], z, zz);
}}Tree;void solve(){for(int i = 0; i < (N << 2); i ++){for(int j = 0; j <= 2; j ++){tr[i].mx[j] = tr[i].mn[j] = tr[i].flag[j] = 0;}}int q;cin >> n >> q;for(int i = 1; i <= n; i++){edg[i].clear();}for(int i = 2; i <= n; i++){int x; cin >> x;edg[i].push_back(x);edg[x].push_back(i);}tot = 0; dep[1] = 1; Tree.dfs1(1); Tree.dfs2(1, 1);while(q--){cin >> m[0] >> m[1] >> m[2];for(int j = 0; j <= 2; j++){for(int i = 1; i <= m[j]; i++){cin >> a[j][i];}}for(int j = 0; j <= 1; j ++){for(int i = 1; i <= m[j]; i++){Tree.up(1, a[j][i], j, 1);}}for(int i = 1; i <= m[2]; i++){Tree.update(dfn[a[2][i]], dfn[a[2][i]] + siz[a[2][i]] - 1, 2, 1);}cout << Tree.query() << '\n';for(int j = 0; j <= 1; j ++){for(int i = 1; i <= m[j]; i ++){Tree.up(1, a[j][i], j, 0);}}for(int i = 1; i <= m[2]; i++){Tree.update(dfn[a[2][i]], dfn[a[2][i]] + siz[a[2][i]] - 1, 2, 0);}}
}signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t = 1;cin >> t;while(t--){solve();}
}
1004 Keychains
题意:
给定三维坐标系中两个圆环的圆心和法向量,问两个圆环是否相扣。
题解:
可以求A环与B环所在的平面的交点,交点一个在B环外面,一个在B环里面就YES,这样等价于求A球于B平面交点,再等价于A球与(A平面与B平面的交线)的交点。
用向量做会避免很多问题。
代码:(队友的)
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
#define double long double
const double eps = 1e-9;struct dot
{double x, y, z;dot(double xx = 0, double yy = 0, double zz = 0) : x(xx), y(yy), z(zz){}
};
inline void print(dot &a){cout << a.x << " " << a.y << " " << a.z << endl;}inline dot operator + (const dot &a, const dot &b){return dot(a.x + b.x, a.y + b.y, a.z + b.z);}
inline dot operator - (const dot &a, const dot &b){return dot(a.x - b.x, a.y - b.y, a.z - b.z);}
inline double len(const dot &a){return sqrt(a.x * a.x + a.y * a.y + a.z * a.z);}
inline double operator * (const dot &a, const dot &b){return a.x * b.x + a.y * b.y + a.z * b.z;}
inline dot operator * (const double &k, const dot &a){return dot(k * a.x, k * a.y, k * a.z);}
inline dot operator / (const dot &a, const double &k){return dot(a.x / k, a.y / k, a.z / k);}
inline dot operator ^ (const dot &a, const dot &b){return dot(a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z, a.x * b.y - a.y * b.x);}
inline dot unit(const dot &a){return a / len(a);}//单位向量struct line
{dot d, a, b;line(dot dd, dot aa) : d(unit(dd)), a(aa), b(aa + unit(dd)){}
};struct cir
{dot o;double r;cir(double x = 0, double y = 0, double z = 0, double rr = 0) : o(dot(x, y, z)), r(rr){}
}; inline dot vert(const line &l, const dot &o)//垂足
{return l.a + ((o - l.a) * l.d) * l.d;
}inline double calc(double x, double y){return sqrt(x * x - y * y);}
inline vector<dot> cross_line_cir(const cir &c, const line &l)
{vector<dot> res;dot x = vert(l, c.o);double dd = len(x - c.o);if(c.r < dd - eps)return res;if(abs(c.r - dd) < eps){res.push_back(x);return res;}double dis = calc(c.r, dd);res.push_back(x + dis * l.d);res.push_back(x - dis * l.d);return res;
}inline dot intion(dot p1, dot d1, dot p2, dot d2)
{dot e = d1 ^ d2;dot u = d1 ^ e;return p1 + ((p2 - p1) * d2) / (u * d2) * u;
}inline bool incir(const cir &c, const dot &o){return len(o - c.o) < c.r - eps;}
inline bool outcir(const cir &c, const dot &o){return len(o - c.o) > c.r + eps;}cir c[3];
dot f[3];int main()
{ios::sync_with_stdio(0);cin.tie(0);int _;cin>>_;while(_--){for(int i = 1; i <= 2; ++i)cin >> c[i].o.x >> c[i].o.y >> c[i].o.z >> f[i].x >> f[i].y >> f[i].z >> c[i].r;line l(f[1] ^ f[2], intion(c[1].o, f[1], c[2].o, f[2]));// print(l.a);vector<dot> ans = cross_line_cir(c[1], l);if(ans.size() < 2){cout << "No\n";continue;}// print(ans[0]);print(ans[1]);//if((incir(c[2],ans[0])&&outcir(c[2],ans[1]))||(outcir(c[2],ans[0])&&incir(c[2],ans[1])))if(incir(c[2], ans[0]) ^ incir(c[2], ans[1]))cout << "Yes\n";else cout << "No\n";}return 0;
}
1003 Copy
题意:
给定一个数列,q次操作,1操作复制l-r区间加在l-r区间后面,2操作查询第x个是多少,答案为查询的数字的异或和。
题解:
一次复制相当于把下面所有>r的查询减去(r-l+1),又因为l,r,x都是小于n,而答案输出的又是异或和(异或两次等于0)所以可以用bitset是维护答案。也可以把区间分为块,每次操作只会增加三块,实现时存一下块的索引和块大小的前缀和。
也可以分块做,找了两份队友的代码学习。
bitset代码:
#include<iostream>
#include<iomanip>
#include<cstring>
#include<cmath>
#include<bitset>
using namespace std;
#define debug(x) cout<<#x<<" "<<(x)<<endl
#define debug2(x,y) cout<<#x<<endl;for(int i=1;i<=y;++i)cout<<x[i]<<" ";cout<<endl
#define mem(x,y) memset(x,y,sizeof(x));
#define int long long
#define double long double
const int inf=0x3f3f3f3f3f3f3f3f;
const double eps=1e-9;
const double PI=acos(-1.0);
const int maxn=1e5+10;struct Que
{int flg,l,r;
};int n;
int a[maxn];
bitset<maxn> res;
Que que[maxn];signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// cout<<fixed<<setprecision(6);int _;cin>>_;while(_--){int q;cin>>n>>q;for(int i=1;i<=n;++i)res[i]=0;for(int i=1;i<=n;++i)cin>>a[i];for(int i=1;i<=q;++i){cin>>que[i].flg>>que[i].l;if(que[i].flg==1)cin>>que[i].r;}for(int i=q;i>=1;--i){if(que[i].flg==1){bitset<maxn> l=(~bitset<maxn>(0)>>(maxn-que[i].r-1))&res;bitset<maxn> r=(~bitset<maxn>(0)<<(que[i].r+1))&res;res=l^(r>>(que[i].r-que[i].l+1));}if(que[i].flg==2)res[que[i].l]=res[que[i].l]^1;}int ans=0;for(int i=1;i<=n;++i)if(res[i])ans^=a[i];cout<<ans<<'\n';}return 0;
}
分块代码:
#include<iostream>
#include<iomanip>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std;
#define debug(x) cout<<#x<<" "<<(x)<<endl
#define debug2(x,y) cout<<#x<<endl;for(int i=1;i<=y;++i)cout<<x[i]<<" ";cout<<endl
#define mem(x,y) memset(x,y,sizeof(x));
#define int long long
#define double long double
const int inf=0x3f3f3f3f3f3f3f3f;
const double eps=1e-9;
const double PI=acos(-1.0);
const int maxn=2e6+10;
const int s=350;int n;
int a[maxn];
vector<int> blk[maxn];
int sum[maxn],pos[maxn];void solve()
{int q;cin>>n>>q;for(int i=1;i<=n;++i)cin>>a[i];for(int i=1;i<=n;++i)blk[i].clear();for(int i=1;i<=n;++i){blk[(i-1)/s+1].push_back(a[i]);sum[(i-1)/s+1]=i;}int tot=(n-1)/s+1;int num=tot;for(int i=1;i<=tot;++i)pos[i]=i;int flg,l,r,x;int ans=0;while(q--){cin>>flg;if(flg==1){cin>>l>>r;int ll=lower_bound(sum+1,sum+num+1,l)-sum;int rr=lower_bound(sum+1,sum+num+1,r)-sum;l-=sum[ll-1];r-=sum[rr-1];if(ll==rr){++tot;blk[tot].clear();for(int i=0;i<r;++i)blk[tot].push_back(blk[pos[ll]][i]);++tot;blk[tot].clear();for(int i=l-1;i<r;++i)blk[tot].push_back(blk[pos[ll]][i]);++tot;blk[tot].clear();for(int i=r;i<(int)blk[pos[ll]].size();++i)blk[tot].push_back(blk[pos[ll]][i]);vector<int> t;t.push_back(tot-2);t.push_back(tot-1);t.push_back(tot);for(int i=ll+1;i<=num;++i)t.push_back(pos[i]);for(int i=0;i<(int)t.size();++i){pos[ll+i]=t[i];sum[ll+i]=sum[ll+i-1]+blk[t[i]].size();if(sum[ll+i]>=n){num=ll+i;break;}}}else{++tot;blk[tot].clear();for(int i=l-1;i<(int)blk[pos[ll]].size();++i)blk[tot].push_back(blk[pos[ll]][i]);++tot;blk[tot].clear();for(int i=0;i<r;++i)blk[tot].push_back(blk[pos[rr]][i]);++tot;blk[tot].clear();for(int i=r;i<(int)blk[pos[rr]].size();++i)blk[tot].push_back(blk[pos[rr]][i]);vector<int> t;t.push_back(tot-1);t.push_back(tot-2);for(int i=ll+1;i<rr;++i)t.push_back(pos[i]);t.push_back(tot-1);t.push_back(tot);for(int i=rr+1;i<=num;++i)t.push_back(pos[i]);for(int i=0;i<(int)t.size();++i){pos[rr+i]=t[i];sum[rr+i]=sum[rr+i-1]+blk[t[i]].size();if(sum[rr+i]>=n){num=rr+i;break;}}}}else{cin>>x;int t=lower_bound(sum+1,sum+num+1,x)-sum;ans^=blk[pos[t]][x-sum[t-1]-1];}}cout<<ans<<'\n';
}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// cout<<fixed<<setprecision(6);int _;cin>>_;while(_--){solve();}return 0;
}
1011 DOS Card
题意:
给定n张牌m次查询,每次查询给定一个区间,要求在改区间内抽四张牌,两两组合,每一对的值为,其中i < j,总值为两对值的和,问总值的最大值。
题解:
具体看代码,借鉴了同学的代码,相信看到变量名一定茅塞顿开。
代码:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<iomanip>
using namespace std;
#define int long long
#define double long double
#define INF 0x3f3f3f3f3f3f3f3f
#define eps 1e-9const int N = 2e5 + 10;struct node{int d, x, xx, dd, dx, xd, dxd, xdx, ddx, dxx, dxdx, ddxx;void init(){d = x = xx = dd = dx = xd = dxd = xdx = ddx = dxx = dxdx = ddxx = -INF;}node operator + (const node &r) const{node res;res.init();res.d = max(d, r.d);res.x = max(x, r.x);res.xx = max({xx, r.xx, x + r.x});res.dd = max({dd, r.dd, d + r.d});res.xd = max({xd, r.xd, x + r.d});res.dx = max({dx, r.dx, d + r.x});res.ddx = max({ddx, r.ddx, dd + r.x, d + r.dx});res.dxd = max({dxd, r.dxd, dx + r.d, d + r.xd});res.dxx = max({dxx, r.dxx, d + r.xx, dx + r.x});res.xdx = max({xdx, r.xdx, x + r.dx, xd + r.x});res.ddxx = max({ddxx, r.ddxx, d + r.dxx, dd + r.xx, ddx + r.x});res.dxdx = max({dxdx, r.dxdx, d + r.xdx, dx + r.dx, dxd + r.x});return res;}
};
int n, a[N];
node tr[N << 2];struct tree{
#define ls (p << 1)
#define rs (p << 1 | 1)void build(int l = 1, int r = n, int p = 1){tr[p].init();if(l == r){tr[p].x = -a[l] * a[l];tr[p].d = a[l] * a[l];return ;}int mid = (l + r) >> 1;build(l, mid, ls);build(mid + 1, r, rs);tr[p] = tr[ls] + tr[rs];
}node query(int s, int t, int l = 1, int r = n, int p = 1){if(s <= l && r <= t) return tr[p];int mid = (l + r) >> 1;if(t <= mid) return query(s, t, l, mid, ls);else if(mid < s) return query(s, t, mid + 1, r, rs);else return query(s, t, l, mid, ls) + query(s, t, mid + 1, r, rs);
}}tree;void solve(){int q;cin >> n >> q;for(int i = 1; i <= n; i++){cin >> a[i];}tree.build();int l, r;while(q--){cin >> l >> r;node ans = tree.query(l, r);cout << max(ans.ddxx, ans.dxdx) << '\n';}
}signed main(){ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int t = 1;cin >> t;while(t--){solve();}
}
2022“杭电杯”中国大学生算法设计超级联赛(2)题解报告相关推荐
- 2022“杭电杯”中国大学生算法设计超级联赛(8)
2022"杭电杯"中国大学生算法设计超级联赛(8) [题目链接](Search Result (hdu.edu.cn)) D Quel'Thalas 题目大意 在二维平面上,[0, ...
- 2022“杭电杯”中国大学生算法设计超级联赛(4)
2022"杭电杯"中国大学生算法设计超级联赛(4) [题目链接](Search Result (hdu.edu.cn)) D Link with Equilateral Trian ...
- 2022“杭电杯”中国大学生算法设计超级联赛 (1) 杭电多校第一场 2 3 4 5 8 12
题目 1002 Dragon slayer 标程 1003 Backpack AC代码 1004 Ball AC代码 1008 Path AC代码 1009 Laser AC代码 1012 Alice ...
- 2022“杭电杯”中国大学生算法设计超级联赛 (2) 杭电多校第二场
题目 1001 Static Query on Tree AC代码 1002 C++ to Python AC代码 1003 Copy AC代码 1005 Slayers Come AC代码 1007 ...
- 2022“杭电杯”中国大学生算法设计超级联赛(8)题解报告
Problem D. Quel'Thalas 题解: 手玩一下就会发现答案是就是2n. 代码: #include<iostream> #include<algorithm> # ...
- 2022“杭电杯”中国大学生算法设计超级联赛(6)题解报告
1006.Maex 题意: 给定一棵由从 1 到 n 编号的 n 个顶点组成的有根树,根为顶点 1.顶点 i 有一个自然数权重 ai,并且没有两个不同的顶点具有相同的权重.bu是以u为根的子树的权重的 ...
- 2022“杭电杯”中国大学生算法设计超级联赛(2)1003.Copy
样例输入: 1 5 3 1 2 3 4 5 2 4 1 2 4 2 5 样例输出: 6 题意: 有q次操作,有以下两种: 1.选择区间[l,r],复制[l,r]追加到r后,总的数组的大小(n)不变 ...
- 2022“杭电杯”中国大学生算法设计超级联赛(8)补题
1004 Quel'Thalas 题意 在二维平面上,点在坐标在[0,n]的区间内,通过添加无限长的直线可以覆盖这些点,在不覆盖(0,0)的情况下要添加多少根直线. 思路 在两个方向上添加直线,所以 ...
- 2022“杭电杯”中国大学生算法设计超级联赛(8)补题 1011 (持续更新中)
目录 1011 Stormwind(贪心--分割矩形) 1011 Stormwind(贪心–分割矩形) /*题解:想要切割的次数最多,让原矩形的一边尽可能被多次切割,另一边紧跟即可*/ #includ ...
- 2022“杭电杯”中国大学生算法设计超级联赛(1)1003 Backpack个人题解
Backpack 题目描述 有n件物品,他们各自都有体积vi和价值wi,给你一个体积为m的背包,求是否能从这n件物品中取出若干件,使得它们的体积之和恰好为m,所有物品的异或和最大,最大值是多少 分析 ...
最新文章
- 使用Python统计Linux系统内存
- RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”...
- mybatis 笔记记录
- Post/Redirect/Get模式防止表单重复提交
- 数据库原理与应用(SQL Server)教程 主键、外键以及联合主键、复合主键和设置种子数目和增量
- 第二章 Python基本元素:数字、字符串和变量
- 在 windows 下使用 Xming+Putty 显示 Linux 下软件图形界面
- Object-c 总结之NSArray
- 关于SIGPIPE导致的程序退出
- Maven问题-maven projects dependencies标红,但jar包事实上是没问题的
- es支持的操作及性能
- python select實現非阻塞socket
- 洛谷 1563 玩具谜题——模拟水题
- 《21天学通Java(第7版)》—— 2.8 问与答
- CMSInitiatingOccupancyFraction计算释疑
- 工业读写器行业解决方案
- 实验一:信息隐藏与数字水印
- 不同进制之间相互转换
- php商品浏览页面,jquery仿京东商品放大浏览页面_实例分享
- n*m的格子中正方形个数和长方形个数
热门文章
- 打开和设置IDEA欢迎界面
- php文字转拼音API接口下载,微擎API 开发之汉字转拼音助手
- Fe3O4纳米颗粒的表面接枝修饰/氨基乙酸|L-半胱氨酸(L-Cys)修饰的Fe3O4包裹TiO2(Fe3O4@TiO2/L-Cys)复合纳米粒子
- stm32F107VC通过模拟SPI方式读取LIS3DH三轴加速度传感器数据
- bug严重等级与优先级
- Pollard‘s rho大数分解算法
- Quartz定时任务自学
- lisp方格网法计算土方量_土地整理中方格网法计算土方量
- 解决VMware虚拟机由于不小心更改文件路径导致的桌面图标变白,运行exe程序显示找不到路径的错误
- NPM => npm登录-发包-删包-整体流程