SDOI2016 R1 解题报告 bzoj4513~bzoj4518
储能表
将n, m分解为二进制,考虑一个log(n)层的trie树,n会在这颗trie树上走出了一个路径,因为 行数 $ \le n$,所以在n的二进制路径上,每次往1走的时候,与m计算贡献,m同样处理,$O(Tlog(n)log(m))$
当然可以数位dp, $f_{i, n, m, k}$分别代表考虑到第i位,与n, m, k的大小关系,不是很好写,就写了上面的方法。
#include <bits/stdc++.h>
#define rep(i, a, b) for (int i = a; i <= b; i++)
#define drep(i, a, b) for (int i = a; i >= b; i--)
#define REP(i, a, b) for (int i = a; i < b; i++)
#define pb push_back
#define mp make_pair
#define xx first
#define yy second
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef unsigned long long ull;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3fll;
template <typename T> void Max(T& a, T b) { if (b > a) a = b; }
//********************************* ll n, m, k, mod; ll POW(ll base, ll num) {
ll ret = ;
while (num) {
if (num & ) ret = ret * base % mod;
base = base * base % mod;
num >>= ;
}
return ret;
} ll calc(ll st, ll num) {
if (st < ) { num += st; st = ; }
if (num <= ) return ;
ll t1 = * st + num - ;
if (t1 & ) num >>= ;
else t1 >>= ;
return t1 % mod * (num % mod) % mod;
}
ll solve(ll x, ll y, ll i, ll j) {
ll ret();
if (j > i) swap(i, j), swap(x, y);
ll z = x ^ (y ^ (y & ((1ll << i) - )));
ret = calc(z - k, 1ll << i);
return (ret * ((1ll << j) % mod)) % mod;
}
int main() {
/*
freopen("table.in", "r", stdin);
freopen("table.out", "w", stdout);
*/
int T; scanf("%d", &T);
while (T--) {
scanf("%lld%lld%lld%lld", &n, &m, &k, &mod); ll x();
ll ans();
drep(i, , ) if (n >> i & ) {
ll y();
drep(j, , ) if (m >> j & ) {
(ans += solve(x, y, i, j)) %= mod;
y |= 1ll << j;
}
x |= 1ll << i;
} printf("%lld\n", ans);
}
}
table
数字配对
网络流,首先这个图不是奇环,这个图如果有环,那么结构应该是对称的?【我也不是非常清楚,求教。。。】
把费用和容量连成边,进行二分图染色,一直增广到费用加上当前费用小于0为止,别忘了考虑最后一次的流量。
#include <bits/stdc++.h>
#define rep(i, a, b) for (int i = a; i <= b; i++)
#define drep(i, a, b) for (int i = a; i >= b; i--)
#define REP(i, a, b) for (int i = a; i < b; i++)
#define pb push_back
#define mp make_pair
#define xx first
#define yy second
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3fll;
template <typename T> void Max(T& a, T b) { if (b > a) a = b; }
//********************************* const int maxn = ; struct Ed {
int u, v, c; ll w; int nx; Ed() {}
Ed(int _u, int _v, int _c, ll _w, int _nx) :
u(_u), v(_v), c(_c), w(_w), nx(_nx) {}
} E[maxn * maxn << ];
int G[maxn], edtot = ;
void addedge(int u, int v, int c, ll w) {
E[++edtot] = Ed(u, v, c, w, G[u]);
G[u] = edtot;
E[++edtot] = Ed(v, u, , -w, G[v]);
G[v] = edtot;
} bool judge(int num) {
int sqr = sqrt(num);
if (num == ) return ;
rep(i, , sqr) if (num % i == ) return ;
return ;
}
int s, t;
int knd[maxn];
int n;
int a[maxn], b[maxn], c[maxn];
void dfs(int x, int col) {
knd[x] = col;
for (int i = ; i <= n; i++) if (knd[i] == - && (a[i] % a[x] == && judge(a[i] / a[x]) || a[x] % a[i] == && judge(a[x] / a[i]))) dfs(i, col ^ );
} ll dis[maxn]; int pre[maxn];
bool spfa() {
rep(i, , n + ) dis[i] = -INF;
static int que[maxn]; int qh(), qt();
static int vis[maxn]; memset(vis, , sizeof(vis));
vis[que[++qt] = s] = ; dis[s] = ;
while (qh != qt) {
int x = que[++qh]; if (qh == maxn - ) qh = ;
for (int i = G[x]; i; i = E[i].nx) if (E[i].c && dis[E[i].v] < dis[x] + E[i].w) {
dis[E[i].v] = dis[x] + E[i].w; pre[E[i].v] = i;
if (!vis[E[i].v]) {
vis[que[++qt] = E[i].v] = ;
if (qt == maxn - ) qt = ;
}
}
vis[x] = ;
}
return dis[t] != -INF;
}
int ans; ll cost;
bool mcf() {
int flow = inf; ll nm();
for (int i = pre[t]; i; i = pre[E[i].u]) { flow = min(flow, E[i].c); nm += E[i].w; }
if (nm * flow + cost < ) {
ans += cost / -nm;
return ;
}
ans += flow, cost += nm * flow;
for (int i = pre[t]; i; i = pre[E[i].u]) E[i].c -= flow, E[i ^ ].c += flow;
return ;
} int main() {
/*
freopen("pair.in", "r", stdin);
freopen("pair.out", "w", stdout);
*/
scanf("%d", &n);
rep(i, , n) scanf("%d", a + i);
rep(i, , n) scanf("%d", b + i);
rep(i, , n) scanf("%d", c + i); memset(knd, -, sizeof(knd));
rep(i, , n) if (knd[i] == -) dfs(i, ); rep(i, , n) rep(j, , n) if (knd[i] == && knd[j] == ) {
if (a[i] % a[j] == && judge(a[i] / a[j]) || a[j] % a[i] == && judge(a[j] / a[i])) addedge(i, j, min(b[i], b[j]), 1ll * c[i] * c[j]);
}
s = n + , t = n + ;
rep(i, , n) if (knd[i]) addedge(s, i, b[i], ); else addedge(i, t, b[i], ); while (spfa()) if (!mcf()) break; cout << ans << endl;
}
pair
游戏
树链剖分,考虑树链剖分时,每一次的修改均是连续的一段,我们对每一段维护标记$ax + b$x为当前点到这一段起点的距离。
那么假如有新的标记$Ax + B$,我们讨论$Ax + B <= ax + b$的情况,如果影响范围在mid的一边,就把新的标记向一边推,如果新的标记覆盖了多余一半,我们将新标记放在当前节点上,将原来的标记向不足mid的部分下推。
可以说是把标记永久化了。
复杂度为$O(mlog^{3}n)$,树链剖分两个log,标记一次最多下推log层。
#include <bits/stdc++.h>
#define rep(i, a, b) for (int i = a; i <= b; i++)
#define drep(i, a, b) for (int i = a; i >= b; i--)
#define REP(i, a, b) for (int i = a; i < b; i++)
#define pb push_back
#define mp make_pair
#define xx first
#define yy second
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef unsigned long long ull;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3fll;
template <typename T> void Max(T& a, T b) { if (b > a) a = b; }
//********************************* const int maxn = ; struct Ed {
int u, v, w, nx; Ed() {}
Ed(int _u, int _v, int _w, int _nx) :
u(_u), v(_v), w(_w), nx(_nx) {}
} E[maxn << ];
int G[maxn], edtot; void addedge(int u, int v, int w) {
E[++edtot] = Ed(u, v, w, G[u]);
G[u] = edtot;
E[++edtot] = Ed(v, u, w, G[v]);
G[v] = edtot;
} int pre[maxn], dep[maxn], son[maxn], sz[maxn];
ll dis[maxn];
int f[maxn][];
int dfs(int x, int fa) {
pre[x] = fa, dep[x] = dep[fa] + ; f[x][] = fa;
for (int i = ; i <= ; i++) f[x][i] = f[f[x][i - ]][i - ];
son[x] = , sz[x] = ;
for (int i = G[x]; i; i = E[i].nx) if (E[i].v != fa) {
dis[E[i].v] = dis[x] + E[i].w;
sz[x] += dfs(E[i].v, x);
if (sz[E[i].v] > sz[son[x]]) son[x] = E[i].v;
}
return sz[x];
}
int pos[maxn], inv[maxn], top[maxn], ndtot;
void repos(int x, int tp) {
top[x] = tp; pos[x] = ++ndtot; inv[ndtot] = x;
if (son[x]) repos(son[x], tp);
for (int i = G[x]; i; i = E[i].nx) if (E[i].v != son[x] && E[i].v != pre[x]) repos(E[i].v, E[i].v);
} int LCA(int l, int r) {
if (dep[l] < dep[r]) swap(l, r);
int t = dep[l] - dep[r];
drep(i, , ) if (t >> i & ) l = f[l][i];
if (l == r) return l;
drep(i, , ) if (f[l][i] != f[r][i]) l = f[l][i], r = f[r][i];
return f[l][];
} ll Min[maxn << ];
ll A[maxn << ], B[maxn << ], Flag[maxn << ];
void pushup(int o, int l, int r) {
if (Flag[o]) Min[o] = min(B[o], A[o] * (dis[inv[r]] - dis[inv[l]]) + B[o]);
if (l != r) Min[o] = min(Min[o], min(Min[o << ], Min[o << | ]));
}
void giveFlag(int o, int l, int r, ll a, ll b) {
if (!Flag[o]) { A[o] = a, B[o] = b; Flag[o] = ; }
else {
int mid = l + r >> ; ll len = dis[inv[mid + ]] - dis[inv[l]];
if (A[o] == a || l == r) B[o] = min(B[o], b);
else if (a > A[o] && B[o] < b);
else if (a > A[o] && B[o] >= b) {
ll d = (B[o] - b) / (a - A[o]);
if (d < len) giveFlag(o << , l, mid, a, b);
else {
swap(A[o], a), swap(B[o], b);
giveFlag(o << | , mid + , r, a, b + a * len);
}
}
else if (a < A[o] && B[o] > b) swap(A[o], a), swap(B[o], b);
else if (a < A[o] && B[o] <= b) {
ll d = (B[o] - b - ) / (a - A[o]) + ;
if (d >= len) giveFlag(o << | , mid + , r, a, b + a * len);
else {
swap(A[o], a), swap(B[o], b);
giveFlag(o << , l, mid, a, b);
}
}
} pushup(o, l, r);
} void modify(int o, int l, int r, int ql, int qr, ll a, ll b) {
if (ql <= l && r <= qr) {
giveFlag(o, l, r, a, b + a * (dis[inv[l]] - dis[inv[ql]]));
return;
} int mid = l + r >> ;
if (ql <= mid) modify(o << , l, mid, ql, qr, a, b);
if (qr > mid) modify(o << | , mid + , r, ql, qr, a, b);
pushup(o, l, r);
} int n;
void modify2(int tar, int x, ll a, ll b) {
while (top[tar] != top[x]) {
int F = top[x];
modify(, , n, pos[F], pos[x], a, b + a * (dis[F] - dis[tar]));
x = pre[F];
} modify(, , n, pos[tar], pos[x], a, b);
} void modify(int l, int r, ll a, ll b) {
int lca = LCA(l, r);
modify2(lca, l, -a, b + a * (dis[l] - dis[lca]));
modify2(lca, r, a, b + a * (dis[l] - dis[lca]));
} ll query(int o, int l, int r, int ql, int qr) {
ll ret = INF;
if (Flag[o]) {
int L = max(l, ql), R = min(r, qr);
ret = min(A[o] * (dis[inv[L]] - dis[inv[l]]) + B[o], A[o] * (dis[inv[R]] - dis[inv[l]]) + B[o]);
} if (ql <= l && r <= qr) return min(ret, Min[o]);
else {
int mid = l + r >> ;
if (ql <= mid) ret = min(ret, query(o << , l, mid, ql, qr));
if (qr > mid) ret = min(ret, query(o << | , mid + , r, ql, qr));
}
return ret;
} ll solve(int l, int r) {
ll ret = INF;
while (top[l] != top[r]) {
if (dep[top[l]] < dep[top[r]]) swap(l, r);
ret = min(ret, query(, , n, pos[top[l]], pos[l]));
l = pre[top[l]];
}
if (dep[l] < dep[r]) swap(l, r);
ret = min(ret, query(, , n, pos[r], pos[l])); return ret;
} int main() {
/*
freopen("game.in", "r", stdin);
freopen("game.out", "w", stdout);
*/
int m; scanf("%d%d", &n, &m);
REP(i, , n) {
int u, v, w; scanf("%d%d%d", &u, &v, &w);
addedge(u, v, w);
} dfs(, ), repos(, ); REP(i, , maxn << ) Min[i] = 123456789123456789ll; while (m--) {
int op; scanf("%d", &op);
if (op == ) {
int u, v, a, b; scanf("%d%d%d%d", &u, &v, &a, &b);
modify(u, v, a, b);
}
else {
int s, t; scanf("%d%d", &s, &t);
printf("%lld\n", solve(s, t));
}
} return ;
}
game
生成魔咒
后缀数组,将字符串反过来,维护一个set,每次加入的字符串找到位置,计算贡献。
#include <bits/stdc++.h>
#define rep(i, a, b) for (register int i = a; i <= b; i++)
#define drep(i, a, b) for (register int i = a; i >= b; i--)
#define REP(i, a, b) for (int i = a; i < b; i++)
#define pb push_back
#define mp make_pair
#define clr(x) memset(x, 0, sizeof(x))
#define xx first
#define yy second using namespace std; typedef long long ll;
typedef pair<int, int> pii;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3fll;
//******************************** const int maxn = ; int a[maxn], hsh[maxn], cd;
int sa[maxn], t[maxn], t2[maxn], c[maxn], n; void build_sa(int m) {
int *x = t, *y = t2;
rep(i, , m) c[i] = ;
rep(i, , n) c[x[i] = a[i]]++;
rep(i, , m) c[i] += c[i - ];
drep(i, n, ) sa[c[x[i]]--] = i; for (int k = ; k <= n; k <<= ) {
int p = ;
rep(i, n - k + , n) y[++p] = i;
rep(i, , n) if (sa[i] > k) y[++p] = sa[i] - k; rep(i, , m) c[i] = ;
rep(i, , n) c[x[y[i]]]++;
rep(i, , m) c[i] += c[i - ];
drep(i, n, ) sa[c[x[y[i]]]--] = y[i]; swap(x, y);
p = ; x[sa[]] = ;
rep(i, , n)
x[sa[i]] = y[sa[i]] == y[sa[i - ]] && y[sa[i] + k] == y[sa[i - ] + k] ? p - : p++;
if (p >= n) break;
m = p;
}
} int rnk[maxn], height[maxn];
void build_height() {
int k();
rep(i, , n) rnk[sa[i]] = i;
rep(i, , n) {
if (k) k--;
int j = sa[rnk[i] - ];
while (a[j + k] == a[i + k]) k++;
height[rnk[i]] = k;
}
} int Min[maxn][], Log[maxn];
void build_st() {
Log[] = ;
rep(i, , n) {
Log[i] = Log[i - ];
if ( << Log[i] + == i) Log[i]++;
}
drep(i, n, ) {
Min[i][] = height[i];
for (int j = ; i + ( << j) - <= n; j++)
Min[i][j] = min(Min[i][j - ], Min[i + ( << j - )][j - ]);
}
}
int query(int l, int r) {
int len = r - l + , k = Log[len];
return min(Min[l][k], Min[r - ( << k) + ][k]);
} int main() {
scanf("%d", &n);
rep(i, , n) scanf("%d", a + i), hsh[i] = a[i]; cd = n;
sort(hsh + , hsh + + n), cd = unique(hsh + , hsh + + cd) - hsh - ;
rep(i, , n) a[i] = lower_bound(hsh + , hsh + + cd, a[i]) - hsh;
rep(i, , n / ) swap(a[i], a[n - i + ]); a[++n] = ;
a[n + ] = inf;
build_sa(cd);
build_height(); build_st();
ll ans();
set <int> S; S.insert(-inf), S.insert(inf);
drep(i, n - , ) {
set<int> :: iterator H = S.lower_bound(rnk[i]), P = S.upper_bound(rnk[i]);
int A, B;
if (H != S.begin()) A = *--H; else A = -inf;
B = *P;
if (A != -inf) ans += query(min(rnk[i], A) + , max(rnk[i], A));
if (B != inf) ans += query(min(rnk[i], B) + , max(rnk[i], B));
if (A != -inf && B != inf) ans -= query(min(A, B) + , max(A, B));
printf("%lld\n", 1ll * (n - i) * (n - i - ) / + n - i - ans);
S.insert(rnk[i]);
}
return ;
}
incantation
排列计数
组合数*错排数
$f_{n} = (n - 1)(f_{n - 1} + f_{n - 2})$
#include <bits/stdc++.h>
#define rep(i, a, b) for (long long i = a; i <= b; i++)
#define drep(i, a, b) for (long long i = a; i >= b; i--)
#define REP(i, a, b) for (long long i = a; i < b; i++)
#define pb push_back
#define mp make_pair
#define xx first
#define yy second
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3fll;
template <typename T> void Max(T& a, T b) { if (b > a) a = b; }
//********************************* const int maxn = ;
const int mod = 1e9 + ; ll fac[maxn];
ll f[maxn];
void prepare() {
f[] = , f[] = , f[] = ;
rep(n, , ) f[n] = ((n - ) * (n - ) % mod * f[n - ] % mod + (n - ) * (n - ) % mod * f[n - ] % mod) % mod; fac[] = ;
rep(n, , ) fac[n] = fac[n - ] * n % mod;
} ll POW(ll base, int num) {
ll ret = ;
while (num) {
if (num & ) ret = ret * base % mod;
base = base * base % mod;
num >>= ;
}
return ret;
}
ll C(int n, int m) {
ll ret = fac[n];
ret = ret * POW(fac[n - m], mod - ) % mod;
ret = ret * POW(fac[m], mod - ) % mod;
return ret;
}
int main() {
prepare();
int T; scanf("%d", &T);
while (T--) {
int n, m; scanf("%d%d", &n, &m);
if (n < m) puts("");
else printf("%lld\n", C(n, m) * f[n - m] % mod);
}
return ;
}
permutation
征途
$s^{2} = \frac{\sum\limits_{i = 1}^{m}(x_{i} - \overline{x})^{2}}{m}$,将$(x_{i} - \overline{x})^{2}$展开,会发现我们其实要最小化$\sum\limits_{i = 1}^{m}x_{i}^{2}$
设$f_{i,j}$代表dp到第i位(包括i),是第j段的最小平方和。
那么$f_{i,j} = min(f_{k,j - 1}) + (s_{i}-s_{k})^{2}$, s为前缀和。
固定j以后发现只与k有关,斜率优化即可。
#include <bits/stdc++.h>
#define rep(i, a, b) for (int i = a; i <= b; i++)
#define drep(i, a, b) for (int i = a; i >= b; i--)
#define REP(i, a, b) for (int i = a; i < b; i++)
#define pb push_back
#define mp make_pair
#define xx first
#define yy second
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef unsigned long long ull;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3fll;
template <typename T> void Max(T& a, T b) { if (b > a) a = b; }
//********************************* const int maxn = ; ll f[maxn], s[maxn], a[maxn];
inline ll p(ll num) { return num * num; } struct HH {
ll x, y;
};
double k(HH A, HH B) { return (double)(A.y - B.y) / (A.x - B.x); } int main() {
int n, m; scanf("%d%d", &n, &m);
rep(i, , n) scanf("%lld", a + i), s[i] = s[i - ] + a[i]; rep(i, , n) f[i] = p(s[i]); rep(j, , m) {
static HH que[maxn]; int qh = , qt();
rep(i, , n) {
HH t = (HH) {s[i], f[i] + p(s[i])};
while (qt > qh && k(que[qt], t) < k(que[qt - ], que[qt])) qt--;
que[++qt] = t; while (qt > qh && k(que[qh], que[qh + ]) < * s[i]) qh++; f[i] = que[qh].y - p(que[qh].x) + p(s[i] - que[qh].x);
}
} cout << m * f[n] - p(s[n]) << endl; return ;
}
journey
SDOI2016 R1 解题报告 bzoj4513~bzoj4518的更多相关文章
- 2015 Multi-University Training Contest 6 solutions BY ZJU(部分解题报告)
官方解题报告:http://bestcoder.hdu.edu.cn/blog/2015-multi-university-training-contest-6-solutions-by-zju/ 表 ...
- Codeforces Educational Round 92 赛后解题报告(A-G)
Codeforces Educational Round 92 赛后解题报告 惨 huayucaiji 惨 A. LCM Problem 赛前:A题嘛,总归简单的咯 赛后:A题这种**题居然想了20m ...
- 【九度OJ】题目1087:约数的个数 解题报告
[九度OJ]题目1087:约数的个数 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次 ...
- CH Round #56 - 国庆节欢乐赛解题报告
最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...
- 二模13day1解题报告
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...
- BZOJ 1051 最受欢迎的牛 解题报告
题目直接摆在这里! 1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4438 Solved: 2353[S ...
- 习题:codevs 2822 爱在心中 解题报告
这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...
- 习题:codevs 1035 火车停留解题报告
本蒟蒻又来写解题报告了.这次的题目是codevs 1035 火车停留. 题目大意就是给m个火车的到达时间.停留时间和车载货物的价值,车站有n个车道,而火车停留一次车站就会从车载货物价值中获得1%的利润 ...
- 习题: codevs 2492 上帝造题的七分钟2 解题报告
这道题是受到大犇MagHSK的启发我才得以想出来的,蒟蒻觉得自己的代码跟MagHSK大犇的代码完全比不上,所以这里蒟蒻就套用了MagHSK大犇的代码(大家可以关注下我的博客,友情链接就是大犇MagHS ...
随机推荐
- 重启库,提示找不到mysqld
--ledir=/usr/local/mysql/bin 加上server的 directory https://dev.mysql.com/doc/refman/5.5/en/mysqld-s ...
- 1988: Sn 爆long long 的处理方法
题目描述 给你两个数 n, p(0 < n,p <= 10^15); a1 = 1; a2 = 1+2; a3 = 1+2+3; ... an = 1+2+3+...+n Sn ...
- Top 100 Best Blogs for iOS Developers
(by JP Zhang | Last updated: Apr 5, 2016 ) 转载自:http://www.softwarehow.com/best-blogs-for-ios-develo ...
- jquery从tr获取td
已知HTML:<tr id="row001"><td>001</td><td>张三</td></tr>JQU ...
- C#,js数据排序及其操作
List<int> listint=new List<int>{2,1,7,3,8,5,4,6};listint.Sort((x, y) => x - y); var a ...
- HDU 5768 Lucky7 (容斥原理 + 中国剩余定理 + 状态压缩 + 带膜乘法)
题意:……应该不用我说了,看起来就很容斥原理,很中国剩余定理…… 方法:因为题目中的n最大是15,使用状态压缩可以将所有的组合都举出来,然后再拆开成数组,进行中国剩余定理的运算,中国剩余定理能够求出同 ...
- static加载问题
原文地址:http://blog.csdn.net/lubiaopan/article/details/4802430 感谢原作者! static{}(即static块),会在类被加载的时候执 ...
- Unity中www的基本应用
Unity的www主要支持HTTP中的GET和POST方式,GET方式会将请求附加到URL后,POST方式则是通过FORM的形式提交. 以下为Unity客户端的信息: using UnityEngin ...
- win10系统安装oracle11g时遇到INS-13001环境不满足最低要求
升级win10系统之后,需要重新安装Oracle,因为在安装Oralce11g时,使用64位的会出现各种不兼容问题,我每次安装都是使用32位的数据库. 在安装时点击setup.exe之后,出现了:[I ...
- OSPF的基本配置及DR /BDR选举的实验
OSPF的基本配置及DR /BDR选举的实验 实验拓扑: 实验目的:掌握OSPF的基本配置 掌握手工指定RID 掌握如何修改OSPF的接口优先级 观察DR BDR选举的过程 实验要求:R3当选为DR ...