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. Android:控件布局(相对布局)RelativeLayout(转)

    相对布局常用属性: 子类控件相对子类控件:值是另外一个控件的id android:layout_above----------位于给定DI控件之上android:layout_below ------ ...

  2. ch4-持久存储

    1.处理数据和打印 man = [] other = [] try: data = open('sketch.txt') for each_line in data: try: (role, line ...

  3. docker run 详解

    docker run 用于把镜像启动为容器,语法如下: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 常见用法: [root@localhost ~]$ ...

  4. oracle11g+win7没有listener服务

    今天在win7上面安装oracle11g的时候,配置了listener后,lsnrctl start报错. 查看服务,也没有发现listener服务. 各位有没有遇见过这个情况啊!!!!!

  5. WPS Word查询某些内容的出现次数

    1.CTRL+F 打开查找窗体

  6. 【PHP】 php实现字符串反转:支持中英文

    strrev  函数对英文很好用,直接可以实现字符串翻转 但是面对中文呢?肯定都是乱码,对于这样的问题有很多,比如strstr,substr等函数都是这样的. PHP提供了mb_类的函数实现不同编码. ...

  7. 在fedora 18中将普通用户设置为sudo权限

    将一般的用户加入sudo组is not in the sudoers file. This incident will be reported 解决方法 在一般用户下执行sudo命令提示xxx is ...

  8. codereviw得到的一些经验

    1.设置display为none的元素,它的背景图依然会被下载.所以最好是等到该元素需要显示时才给他加上相应的有背景图的class. 2.css中虽然ID选择器的优先级比较高,效率也比较高,但灵活性差 ...

  9. cursor:hand & cursor:pointer

    1.cursor:hand & cursor:pointer都是将鼠标设置为手形. 2.cursor:hand存在兼容性问题,firefox并不支持该属性值.但大部分主流浏览器支持cursor ...

  10. SNMP信息泄露漏洞

    SNMP协议简介 名称:SNMP(Simple Network Management Protocol)简单网络管理协议 端口:161 协议:UDP 用途:SNMP代理者以变量呈现管理资料.管理系统透 ...