A:SUM

水。

 #include<bits/stdc++.h>

 using namespace std;

 #define N 100010
typedef long long ll; int n;
ll arr[N];
ll sum[N]; int main()
{
while(~scanf("%d",&n))
{
memset(sum, , sizeof sum);
for(int i = ; i <= n; ++i)
{
scanf("%lld",&arr[i]);
}
for(int i = n; i >= ; --i)
{
sum[i] = sum[i + ] + arr[i] * (n - i + );
}
for(int i = ;i <= n; ++i)
{
printf("%lld%c",sum[i]," \n"[i == n]);
}
}
return ;
}

B:XOR1

思路:枚举ai, 去字典树中找最大值,取max

 #include <bits/stdc++.h>

 using namespace std;

 #define N 100010
#define ll long long int tree[N * ][];
int cnt[N * ];
int pos; inline void Init()
{
memset(tree, , sizeof tree);
memset(cnt, , sizeof cnt);
pos = ;
} inline void insert(int x)
{
bitset <> b; b = x;
int root = ;
for (int i = ; i >= ; --i)
{
int id = b[i];
if (!tree[root][id])
tree[root][id] = ++pos;
root = tree[root][id];
cnt[root]++;
}
} inline ll Find(int x)
{
bitset <> b; b = x;
ll ans = ;
int root = ;
for (int i = ; i >= ; --i)
{
int id = b[i] ^ ;
bool flag = true;
if (!tree[root][id] || cnt[tree[root][id]] <= )
id ^= , flag = false;
root = tree[root][id];
if (flag) ans += ( << i);
}
return ans;
} int n;
int arr[N]; int main()
{
while (scanf("%d", &n) != EOF)
{
Init();
for (int i = ; i <= n; ++i)
{
scanf("%d", arr + i);
insert(arr[i]);
}
ll ans = ;
for (int i = ; i < n; ++i)
{
ans = max(ans, Find(arr[i]));
}
printf("%lld\n", ans);
}
return ;
}

C:XOR2

思路:先DFS跑出DFS序,然后配合可持久化字典树就可以对子树进行区间操作。

我们自底向上推,这样对于一棵树,它的孩子的答案都已经更新,那么先取max, 假设直系孩子有n个,那么只需要枚举n - 1个孩子以及它的子树里的点更新答案就可以。

 #include <bits/stdc++.h>

 using namespace std;

 #define N 100010
#define ll long long int arr[N]; struct Edge
{
int to, nx;
inline Edge() {}
inline Edge(int to, int nx) : to(to), nx(nx) {}
}edge[N << ]; int head[N], pos, cnt; inline void Init()
{
memset(head, -, sizeof head);
pos = ; cnt = ;
} inline void addedge(int u, int v)
{
edge[++cnt] = Edge(v, head[u]); head[u] = cnt;
edge[++cnt] = Edge(u, head[v]); head[v] = cnt;
} struct Point
{
int fa, ord, son, id;
int ans;
inline bool operator < (const Point& r) const
{
return son - ord < r.son - r.ord;
}
}point[N]; int n;
int ford[N]; struct node
{
int son[], cnt;
inline node()
{
memset(son, , sizeof son);
cnt = ;
}
}tree[N * ]; int root[N];
int tot; inline void insert(int id, int x)
{
root[id] = ++tot;
int pre = root[id - ];
int now = root[id];
tree[now] = tree[pre];
bitset <> b; b = x;
for (int i = ; i >= ; --i)
{
int index = b[i];
tree[++tot] = tree[tree[now].son[index]];
tree[tot].cnt++;
tree[now].son[index] = tot;
now = tot;
}
} inline int Find(int l, int r, int x)
{
int ans = ;
l = root[l], r = root[r];
bitset <> b; b = x;
for (int i = ; i >= ; --i)
{
int index = b[i] ^ ;
bool flag = true;
if (tree[tree[r].son[index]].cnt - tree[tree[l].son[index]].cnt <= )
{
index ^= ;
flag = false;
}
if (flag) ans += ( << i);
r = tree[r].son[index]; l = tree[l].son[index];
}
return ans;
} struct Node
{
int id, cnt;
inline Node() {}
inline Node(int id, int cnt) : id(id), cnt(cnt) {}
inline bool operator < (const Node &r) const
{
return cnt < r.cnt;
}
}; inline void DFS(int u)
{
point[u].ord = ++pos;
point[u].id = u;
point[u].ans = ;
insert(pos, arr[u]);
ford[pos] = u;
vector <Node> vv;
for (int it = head[u]; ~it; it = edge[it].nx)
{
int v = edge[it].to;
if (v == point[u].fa) continue;
point[v].fa = u; DFS(v);
point[u].ans = max(point[u].ans, point[v].ans);
vv.emplace_back(v, point[v].son - point[v].ord);
}
point[u].son = pos;
int l = point[u].ord, r = point[u].son;
if (l == r) return;
if (l + == r)
{
point[u].ans = arr[ford[l]] ^ arr[ford[r]];
return;
}
point[u].ans = max(point[u].ans, Find(l - , r, arr[u]));
sort(vv.begin(), vv.end());
for (int i = , len = vv.size(); i < len - ; ++i)
{
int it = vv[i].id;
int L = point[it].ord, R = point[it].son;
for (int j = L; j <= R; ++j)
{
point[u].ans = max(point[u].ans, Find(l - , r, arr[ford[j]]));
}
}
} int main()
{
while (scanf("%d", &n) != EOF)
{
Init();
memset(root, , sizeof root);
tot = ;
for (int i = ; i <= n; ++i)
scanf("%d", arr + i);
for (int i = , u, v; i < n; ++i)
{
scanf("%d%d", &u, &v);
addedge(u, v);
}
DFS();
for (int i = ; i <= n; ++i) printf("%d%c", point[i].ans, " \n"[i == n]);
}
return ;
}

D:String

思路:二分长度。在已经固定子串长度情况下可以做到o(n)枚举子串,通过map记录子串次数。

 #include<bits/stdc++.h>

 using namespace std;

 int len, k;
string s; inline bool check(int mid)
{
map<string, int>mp;
string tmp = "";
for (int i = ; i < mid; ++i)
{
tmp += s[i];
}
mp[tmp]++;
if (mp[tmp] >= k) return true;
for (int i = mid; i < len; ++i)
{
tmp.erase(tmp.begin());
tmp += s[i];
mp[tmp]++;
if (mp[tmp] >= k) return true;
}
return false;
} int main()
{
ios::sync_with_stdio(false);
cin.tie();
cout.tie();
while (cin >> k)
{
cin >> s;
int ans = ;
len = s.length();
int l = , r = len / k;
while (r - l >= )
{
int mid = (l + r) >> ;
if (check(mid))
{
ans = mid;
l = mid + ;
}
else
{
r = mid - ;
}
}
cout << ans << endl;
}
return ;
}

E:Dirt

思路:

线段与线段:如果相交为0,否则为线段两端点与另一线段间距取min

线段与圆:如果相交为0,否则为圆心与线段间距减去半径

线段与三角形:如果相交为0,否则为线段两端点与三角形三条线段间距以及三角心三个端点与线段间距取min

圆与圆:如果相交为0,否则为两圆心间距减去两圆半径

圆与三角形:如果相交为0,否则圆心与三角形三条线段间距取min

三角形与三角形:如果相交为0,否则为三角形的三个端点到另一个三角形的三条线段的间距取min

点与线段:如果点在线段上为0,否则为点到线段间距

点与圆:如果点在圆内为0,否则为点到圆心间距减去半径

点与三角形:如果点在三角形内为0,否则为点到三角形的三个线段的间距取min

最后跑一遍最短路

 #include <bits/stdc++.h>

 using namespace std;

 #define N 1110

 const int INF = 0x3f3f3f3f;

 const double eps = 1e-;

 int sgn(double x)
{
if (fabs(x) < eps) return ;
if (x < ) return -;
else return ;
} struct Point
{
double x, y;
inline Point() {}
inline Point(double _x, double _y)
{
x = _x;
y = _y;
} inline void scan()
{
scanf("%lf%lf", &x, &y);
} inline bool operator == (const Point b) const
{
return sgn(x - b.x) == && sgn(y - b.y) == ;
} inline Point operator - (const Point &b) const
{
return Point(x - b.x, y - b.y);
} inline double operator ^ (const Point &b) const
{
return x * b.y - y * b.x;
} inline double operator * (const Point &b) const
{
return x * b.x + y * b.y;
} inline double distance(Point p)
{
return hypot(x - p.x, y - p.y);
} }; struct Line
{
Point s, e;
inline Line() {}
inline Line(Point _s, Point _e)
{
s = _s;
e = _e;
} inline void scan()
{
s.scan(); e.scan();
} inline double length()
{
return s.distance(e);
} inline double dispointtoline(Point p)
{
return fabs((p - s) ^ (e - s)) / length();
} inline double dispointtoseg(Point p)
{
if (sgn((p - s) * (e - s)) < || sgn((p - e) * (s - e)) < )
return min(p.distance(s), p.distance(e));
return dispointtoline(p);
} inline bool pointonseg(Point p)
{
return sgn((p - s) ^ (e - s)) == && sgn((p - s) * (p - e)) <= ;
} inline int segcrossseg(Line v)
{
int d1 = sgn((e - s) ^ (v.s - s));
int d2 = sgn((e - s) ^ (v.e - s));
int d3 = sgn((v.e - v.s) ^ (s - v.s));
int d4 = sgn((v.e - v.s) ^ (e - v.s));
if ((d1 ^ d2) == - && (d3 ^ d4) == -) return ;
return (d1 == && sgn((v.s - s) * (v.e - e)) <= ) || (d2 == && sgn((v.e - s) * (v.e - e)) <= ) || (d3 == && sgn((s - v.s) * (s - v.e)) <= ) || (d4 == && sgn((e - v.s) * (e - v.e)) <= );
} }line[N]; struct Circle
{
Point p;
double r;
inline Circle() {}
inline Circle(Point _p, double _r)
{
p = _p;
r = _r;
} inline void scan()
{
p.scan();
scanf("%lf", &r);
} }circle[N]; struct Triangle
{
Point a, b, c;
inline Triangle() {}
inline Triangle(Point _a, Point _b, Point _c)
{
a = _a;
b = _b;
c = _c;
} inline void scan()
{
a.scan(); b.scan(); c.scan();
} }triangle[N]; int vis[N];
int n;
Point S, T; double G[N][N]; inline double work11(int i, int j)
{
if (line[i].segcrossseg(line[j]) > ) return 0.0;
double ans = INF * 1.0;
ans = min(ans, line[i].dispointtoseg(line[j].s));
ans = min(ans, line[i].dispointtoseg(line[j].e));
ans = min(ans, line[j].dispointtoseg(line[i].s));
ans = min(ans, line[j].dispointtoseg(line[i].e));
return ans;
} inline double work12(int i, int j)
{
return max(0.0, line[i].dispointtoseg(circle[j].p) - circle[j].r);
} inline double work13(int i, int j)
{
Point a = triangle[j].a, b = triangle[j].b, c = triangle[j].c;
if (line[i].segcrossseg(Line(a, b)) > ) return 0.0;
if (line[i].segcrossseg(Line(a, c)) > ) return 0.0;
if (line[i].segcrossseg(Line(b, c)) > ) return 0.0;
double ans = INF * 1.0;
ans = min(ans, line[i].dispointtoseg(a));
ans = min(ans, line[i].dispointtoseg(b));
ans = min(ans, line[i].dispointtoseg(c)); Point s = line[i].s, e = line[i].e; ans = min(ans, Line(a, b).dispointtoseg(s));
ans = min(ans, Line(a, b).dispointtoseg(e)); ans = min(ans, Line(a, c).dispointtoseg(s));
ans = min(ans, Line(a, c).dispointtoseg(e)); ans = min(ans, Line(b, c).dispointtoseg(s));
ans = min(ans, Line(b, c).dispointtoseg(e)); return ans;
} inline double work22(int i, int j)
{
Point c1 = circle[i].p, c2 = circle[j].p;
double r1 = circle[i].r, r2 = circle[j].r;
return max(0.0, c1.distance(c2) - r1 - r2);
} inline double work23(int i, int j)
{
Point p = circle[j].p; double r = circle[j].r;
Point a = triangle[i].a, b = triangle[i].b, c = triangle[i].c;
double ans = INF * 1.0;
ans = min(ans, max(0.0, Line(a, b).dispointtoseg(p) - r));
ans = min(ans, max(0.0, Line(a, c).dispointtoseg(p) - r));
ans = min(ans, max(0.0, Line(b, c).dispointtoseg(p) - r));
return ans;
} inline double work33(int i, int j)
{
Point a = triangle[i].a, b = triangle[i].b, c = triangle[i].c;
Point aa = triangle[j].a, bb = triangle[j].b, cc = triangle[j].c; if (Line(a, b).segcrossseg(Line(aa, bb)) > ) return 0.0;
if (Line(a, b).segcrossseg(Line(aa, cc)) > ) return 0.0;
if (Line(a, b).segcrossseg(Line(bb, cc)) > ) return 0.0; if (Line(a, c).segcrossseg(Line(aa, bb)) > ) return 0.0;
if (Line(a, c).segcrossseg(Line(aa, cc)) > ) return 0.0;
if (Line(a, c).segcrossseg(Line(bb, cc)) > ) return 0.0; if (Line(b, c).segcrossseg(Line(aa, bb)) > ) return 0.0;
if (Line(b, c).segcrossseg(Line(aa, cc)) > ) return 0.0;
if (Line(b, c).segcrossseg(Line(bb, cc)) > ) return 0.0; double ans = INF * 1.0; ans = min(ans, Line(a, b).dispointtoseg(aa));
ans = min(ans, Line(a, b).dispointtoseg(bb));
ans = min(ans, Line(a, b).dispointtoseg(cc)); ans = min(ans, Line(a, c).dispointtoseg(aa));
ans = min(ans, Line(a, c).dispointtoseg(bb));
ans = min(ans, Line(a, c).dispointtoseg(cc)); ans = min(ans, Line(b, c).dispointtoseg(aa));
ans = min(ans, Line(b, c).dispointtoseg(bb));
ans = min(ans, Line(b, c).dispointtoseg(cc)); ans = min(ans, Line(aa, bb).dispointtoseg(a));
ans = min(ans, Line(aa, bb).dispointtoseg(b));
ans = min(ans, Line(aa, bb).dispointtoseg(c)); ans = min(ans, Line(aa, cc).dispointtoseg(a));
ans = min(ans, Line(aa, cc).dispointtoseg(b));
ans = min(ans, Line(aa, cc).dispointtoseg(c)); ans = min(ans, Line(bb, cc).dispointtoseg(a));
ans = min(ans, Line(bb, cc).dispointtoseg(b));
ans = min(ans, Line(bb, cc).dispointtoseg(c)); return ans;
} inline double work01(int vis, int i)
{
Point a = vis ? T : S;
return (line[i].dispointtoseg(a));
} inline double work02(int vis, int i)
{
Point a = vis ? T : S;
Point p = circle[i].p; double r = circle[i].r;
return max(0.0, a.distance(p) - r);
} struct Polygon
{
int n;
Point p[];
Line l[];
inline Polygon() {}
inline Polygon(Triangle r)
{
n = ;
p[] = r.a, p[] = r.b, p[] = r.c;
l[] = Line(p[], p[]);
l[] = Line(p[], p[]);
l[] = Line(p[], p[]);
} inline int relationpoint(Point q)
{
for (int i = ; i < n; ++i)
if (p[i] == q) return ; for (int i = ; i < n; ++i)
if (l[i].pointonseg(q)) return ; int cnt = ;
for (int i = ; i < n; ++i)
{
int j = (i + ) % n;
int k = sgn((q - p[j]) ^ (p[i] - p[j]));
int u = sgn(p[i].y - q.y);
int v = sgn(p[j].y - q.y);
if (k > && u < && v >= ) cnt++;
if (k < && v < && u >= ) cnt--;
}
return cnt != ;
}
}; inline double work03(int vis, int i)
{
Point p = vis ? T : S;
Polygon tmp = Polygon(triangle[i]);
if (tmp.relationpoint(p) > ) return 0.0; double ans = INF * 1.0; ans = min(ans, tmp.l[].dispointtoseg(p));
ans = min(ans, tmp.l[].dispointtoseg(p));
ans = min(ans, tmp.l[].dispointtoseg(p)); return ans;
} bool used[N];
double lowcost[N]; inline void Dijkstra()
{
for (int i = ; i <= n + ; ++i)
{
lowcost[i] = INF * 1.0;
used[i] = false;
}
lowcost[] = ;
for (int j = ; j <= n + ; ++j)
{
int k = -;
double Min = INF * 1.0;
for (int i = ; i <= n + ; ++i)
{
if (!used[i] && lowcost[i] < Min)
{
Min = lowcost[i];
k = i;
}
} if (k == -) break;
used[k] = true; for (int i = ; i <= n + ; ++i)
{
if (!used[i] && lowcost[k] + G[k][i] < lowcost[i])
{
lowcost[i] = lowcost[k] + G[k][i];
}
}
}
} int main()
{
#ifdef LOCAL
freopen("Test.in", "r", stdin);
#endif
while (scanf("%lf%lf%lf%lf", &S.x, &S.y, &T.x, &T.y) != EOF)
{
scanf("%d", &n);
for (int i = ; i <= n; ++i)
{
scanf("%d", vis + i);
if (vis[i] == )
line[i].scan();
else if (vis[i] == )
circle[i].scan();
else
triangle[i].scan();
}
for (int i = ; i <= n; ++i)
{
for (int j = i + ; j <= n; ++j)
{
if (vis[i] == )
{
if (vis[j] == )
G[i][j] = G[j][i] = work11(i, j);
else if (vis[j] == )
G[i][j] = G[j][i] = work12(i, j);
else if (vis[j] == )
G[i][j] = G[j][i] = work13(i, j);
}
else if (vis[i] == )
{
if (vis[j] == )
G[i][j] = G[j][i] = work12(j, i);
else if (vis[j] == )
G[i][j] = G[j][i] = work22(i, j);
else if (vis[j] == )
G[i][j] = G[j][i] = work23(i, j);
}
else if (vis[i] == )
{
if (vis[j] == )
G[i][j] = G[j][i] = work13(j, i);
else if (vis[j] == )
G[i][j] = G[j][i] = work23(j, i);
else if (vis[j] == )
G[i][j] = G[j][i] = work33(i, j);
}
}
} for (int i = ; i <= n; ++i)
{
if (vis[i] == )
{
G[][i] = G[i][] = work01(, i);
G[n + ][i] = G[i][n + ] = work01(, i);
}
else if (vis[i] == )
{
G[][i] = G[i][] = work02(, i);
G[n + ][i] = G[i][n + ] = work02(, i);
}
else if (vis[i] == )
{
G[][i] = G[i][] = work03(, i);
G[n + ][i] = G[i][n + ] = work03(, i);
}
} G[][n + ] = G[n + ][] = S.distance(T); //for (int i = 0; i <= n + 1; ++i)
// for (int j = 0; j <= n + 1; ++j)
// printf("%.2f%c", G[i][j], " \n"[j == n + 1]); Dijkstra();
printf("%d\n", (int)floor(lowcost[n + ]));
}
return ;
}

F:Poker

水。

 #include <bits/stdc++.h>

 using namespace std;

 #define N 100010

 int n;
int arr[N];
int brr[N];
int a[N]; inline void Init()
{
memset(a, , sizeof a);
} inline int lowbit(int x)
{
return x & (-x);
} inline void update(int x, int val)
{
for (int i = x; i <= n; i += lowbit(i))
a[i] += val;
} inline int sum(int x)
{
int ans = ;
for (int i = x; i > ; i -= lowbit(i))
ans += a[i];
return ans;
} inline bool check(int mid, int emp)
{
int tot = sum(mid);
return tot <= emp;
} int main()
{
while (scanf("%d", &n) != EOF)
{
Init();
for (int i = ; i <= n; ++i) update(i, );
for(int i = ; i <= n; ++i)
{
scanf("%d",&arr[i]);
}
for (int i = ; i <= n; ++i)
{
int index = (int)floor(sqrt(n - i + ));
int l = , r = n, id;
while (r - l >= )
{
int mid = (l + r) >> ;
int tot = sum(mid);
if (tot == index)
id = mid;
if (tot >= index)
r = mid - ;
else
l = mid + ;
}
brr[id] = arr[i];
update(id, -);
}
for (int i = ; i <= n; ++i) printf("%d%c", brr[i], " \n"[i == n]);
}
return ;
}
 #include<bits/stdc++.h>

 using namespace std;

 #define N 100010

 int n;
int arr[N];
int brr[N]; int main()
{
while(~scanf("%d",&n))
{
for(int i = ; i <= n; ++i)
{
scanf("%d",&arr[i]);
}
vector<int>vec;
for(int i = n; i >= ;--i)
{
int tmp = floor(sqrt(n - i + ));
vec.insert(vec.begin() + tmp - , arr[i]);
}
for(int i = ; i < n; ++i)
{
printf("%d%c",vec[i]," \n"[i == n - ]);
}
}
return ;
}

BUCT20180814邀请赛 Solution的更多相关文章

  1. CCPC2018-湖南全国邀请赛 Solution

    A - Easy $h$-index 后缀扫一下 #include <bits/stdc++.h> using namespace std; #define ll long long #d ...

  2. HZNU_TI1050 训练实录

    菜鸡队训练实录 比赛记录:[名称:奖项 / 排名] 2018: ZJPSC                       Bronze      / 86 CCPC Jilin              ...

  3. 2014 ACM/ICPC 北京邀请赛 部分 题解

    题目链接:http://acm.bnu.edu.cn/bnuoj/problem.php?search=2014+ACM-ICPC+Beijing+Invitational+Programming+C ...

  4. Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again

    Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again https://ac.nowcoder.com/acm/contest/700/I 时间限制:C/C++ 1 ...

  5. CSAPC08台湾邀请赛_T1_skyline

    题目链接:CSAPC08台湾邀请赛_T1_skyline 题目描述 一座山的山稜线由许多片段的45度斜坡构成,每一个片段不是上坡就是下坡. / /​ * / ​/ * /  // ​/ // / 在我 ...

  6. Enterprise Solution 3.1 企业应用开发框架 .NET ERP/CRM/MIS 开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    行业:基于数据库的制造行业管理软件,包含ERP.MRP.CRM.MIS.MES等企业管理软件 数据库平台:SQL Server 2005或以上 系统架构:C/S 开发技术 序号 领域 技术 1 数据库 ...

  7. Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架

    Enterprise Solution 是一套管理软件开发框架,在这个框架基础上开发出一套企业资源计划系统Enterprise Edition. 现将Enterprise Solution开发过程中遇 ...

  8. Windows 10 部署Enterprise Solution 5.5

    Windows 10正式版发布以后,新操作系统带来了许多的变化.现在新购买的电脑安装的系统应该是Windows 10.与当初用户不习惯Windows 7,购买新电脑后第一个想做的事情就是重装成XP,估 ...

  9. Enterprise Solution 企业资源计划管理软件 C/S架构,支持64位系统,企业全面应用集成,制造业信息化

    Enterprise Solution是一套完整的企业资源计划系统,功能符合众多制造业客户要求.系统以.NET Framework技术作为开发架构,完善的功能可有效地帮助企业进行运营策划,减低成本,如 ...

随机推荐

  1. SVN-001

    1.cd到指定目录: 2.执行:svn cleanup:

  2. python2.0_s12_day10_Twsited异步网络框架

    Twsited异步网络框架 Twisted是一个事件驱动的网络框架,其中包含了诸多功能,例如:网络协议.线程.数据库管理.网络操作.电子邮件等. Package application Configu ...

  3. Discuz 模板标签说明

    Discuz 模板标签说明 Discuz! 的模板采用近似 PHP 表达式的语法,基本都是可识别的HTML,但涉及到变量和动态内容时,基本形式下: <!-{ 代码内容 }-> 逻辑元素包围 ...

  4. OracleServiceORCL这个服务竟然不见了

    OracleServiceORCL这个服务竟然不见了,后数据库连接不成功,晕死,以前使用数据库还能看到,现在竟然不见了?Why?我猜测原因有二: ①:电脑已经装了Oracle数据库后又装了MySql数 ...

  5. 进程保护--CrossThreadFlags标志位

    原理: 1. 将进程的所有线程的线程CrossThreadFlags标志位设置成Terminated或者System. 效果:任务管理器,WSYSCheck,ICESWORD无法结束进程.. 但PCH ...

  6. [置顶] Linux协议栈代码阅读笔记(二)网络接口的配置

    Linux协议栈代码阅读笔记(二)网络接口的配置 (基于linux-2.6.11) (一)用户态通过C库函数ioctl进行网络接口的配置 例如,知名的ifconfig程序,就是通过C库函数sys_io ...

  7. Java三方---->Thumbnailator框架的使用

    Thumbnailator是一个用来生成图像缩略图的 Java类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图.有了它我们就不用在费心思使用Image I/O API,J ...

  8. RxJava && Agera 从源码简要分析基本调用流程(1)

    版权声明:本文由晋中望原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/123 来源:腾云阁 https://www.qclo ...

  9. 【BZOJ4144】[AMPPZ2014]Petrol 最短路+离线+最小生成树

    [BZOJ4144][AMPPZ2014]Petrol Description 给定一个n个点.m条边的带权无向图,其中有s个点是加油站. 每辆车都有一个油量上限b,即每次行走距离不能超过b,但在加油 ...

  10. windows服务的默认启动类型和登录帐户

    转自:http://www.winhelponline.com/blog/windows-7-services-default-startup-type/ Service Name Startup T ...