NWU现场赛——解题报告
负二进制转换
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Problem Description
已经不满足正二进制了,他现在研究的是负二进制,他给你一串负二进制表示的编码,希望你告诉他这串负二进制表示的十进制数是
多少。
Input
Output
Sample Input
1011
001101001
Sample Output
-3
220 Hint:
对于第一组样例
ans = 1*(-2)^0 + 0*(-2)^1 + 1*(-2)^2 + 1*(-2)^3 = -3 水题,直接签到。
#include <bits/stdc++.h> using namespace std; int b[];
char s[]; int main(){ b[] = ;
for (int i = ; i <= ; ++i) b[i] = b[i - ] * (-); while (~scanf("%s", s)){
int ans = ;
for (int i = ; i < strlen(s); ++i)
ans += ((int)s[i] - ) * b[i]; printf("%d\n", ans);
} return ; }
反序数
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Problem Description
Input
Output
Sample Input
123
321
123456879123
Sample Output
321 123 321987654321 同样,水题。
#include <bits/stdc++.h> using namespace std; char s[]; int main(){ while (~scanf("%s", s)){
for (int i = strlen(s) - ; i >= ; --i) putchar(s[i]);
printf("\n\n");
} return ; }
翻转区间
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Problem Description
1> 若已知某区间长度为n, 区间编号 i 从 1-n, ai表示标号为i的元素。
2> Jstyle从i = 1开始翻转 [i, n-i+1]这个区间,i <= n-i+1 的时候,他会一直翻转下去。
Jstyle现在给他的弟弟出难题了,他给Yimi一个翻转后的区间,让Yimi求出翻转前的区间是什么。Yimi最近有点ZZ,他希望善良的你帮他解决这个问题。
Input
第一行输入一个整数 n, (1 <= n <= 200000);
第二行输入n个整数 a1, a2, ..., an (-10^9 <= ai <= 10^9)表示翻转后区间内的元素;
Output
Sample Input
7
4 3 7 6 9 1 2
8
6 1 4 2 5 6 9 2
Sample Output
2 3 9 6 7 1 4
2 1 6 2 5 4 9 6 Hint
对于第一组样例:
第0步操作后,区间为 2 3 9 6 7 1 4
第1步操作翻转[1, 7], 区间为 4 1 7 6 9 3 2
第2步操作翻转[2, 6], 区间为 4 3 9 6 7 1 2
第3步操作翻转[3, 5], 区间为 4 3 7 6 9 1 2
第4步操作翻转[4, 4], 区间为 4 3 9 6 7 1 2
结束操作。
#include <bits/stdc++.h> using namespace std; #define REP(i,n) for(int i(0); i < (n); ++i)
#define rep(i,a,b) for(int i(a); i <= (b); ++i)
#define dec(i,a,b) for(int i(a); i >= (b); --i)
#define for_edge(i,x) for(int i = H[x]; i; i = X[i]) const int N = + ; int a[N], l, n, cnt; int main(){ while (~scanf("%d", &n)){
rep(i, , n) scanf("%d", a + i);
l = n / ; cnt = ;
rep(i, , l){
++cnt;
if (cnt & ) swap(a[i], a[n - i + ]);
}
rep(i, , n - ) printf("%d ", a[i]); printf("%d\n", a[n]);
} return ; }
养兔兔
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Problem Description
最近,寂寞的ZKY学长又从黑市进了一只新生兔,并使用自己的调教方式对其进行改造。
ZKY学长想要看看以自己的手艺,在第X年能够繁殖到多少只兔子。可惜ZKY学长数学不是很好,所以只能求助于聪明的同学们了。
(从第一年算起,第一年有一只兔子)
Input
Output
Sample Input
1
6
8
13
Sample Output
1
2
4
15 递推式f(n)=f(n-1)+f(n-5) 因为n<=54,那么答案用long long存就可以了。
#include <bits/stdc++.h> using namespace std; long long f[]; int main(){ for (int i = ; i <= ; ++i) f[i] = ;
for (int i = ; i <= ; ++i) f[i] = f[i - ] + f[i - ]; int n;
while (~scanf("%d", &n)) printf("%lld\n", f[n]); return ; }
Beautiful String
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Problem Description
第0个字符串:U
第1个字符串:DU
第2个字符串:UDDU
第3个字符串:DUUDUDDU
第4个字符串:UDDUDUUDDUUDUDDU
......
相信你已经发现规律了,没错!就是第i个字符串 = 第i-1个字符串的取反 + 第i-1个字符串;取反(U->D, D->U);
现在告诉你n和k,让你求得第n个字符串的第k个字符是多少。(注意字符串编号从0开始);
Input
Output
Sample Input
3 6
51 123456789012345
Sample Output
down
up 分类讨论当前所求字符在字符串的前一半还是后一半,算出要改变多少次cnt。
那么最后看cnt的奇偶性即可。
#include <bits/stdc++.h> using namespace std; long long b[];
int n;
long long l; int main(){ b[] = ; for (int i = ; i <= ; ++i) b[i] = b[i - ] * ;
while (~scanf("%d%lld", &n, &l)){
++l;
int cnt = ;
for (; n; --n) if (l > b[n - ]) l -= b[n - ]; else ++cnt;
puts(cnt % ? "down" : "up");
} return ; }
神奇的花瓣
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Problem Description
今天,他又在宿舍一楼阳台下的阴暗角落里发现了一种奇异的花。这种花由六瓣组成,每瓣形状各异。
ZZC学长统计出花瓣共有六种形状,并为这些形状编号。他找到了N朵花,以顺时针方向对每朵花进行观察,但是他的数学跟ZKY学长一样不是很好,你能帮他统计一共有多少朵形状不同的花么?
(hint:123456和612345是一种形状的花)
Input
Output
Sample Input
2
123456
612345
3
135555
124444
355551
Sample Output
1
2 本来想着用字符串的最小表示法做这道题……结果还是写了暴力(因为字符串长度为6)
#include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (int i(a); i <= (b); ++i) string cs[]; char s[];
int n; set <string> mp; int main(){ while (~scanf("%d", &n)){
mp.clear();
for (int i = ; i <= n; ++i){
scanf("%s", s);
rep(j, , ) cs[j] = "";
int t = ;
rep(j, , ){
++t;
rep(k, j, ) cs[t] += s[k];
rep(k, , j - ) cs[t] += s[k];
} string ssc = cs[];
rep(j, , ) if (ssc > cs[j]) ssc = cs[j]; mp.insert(ssc); } printf("%d\n", (int)mp.size()); } return ; }
景女神与她的托福
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Problem Description
满神给了景女神一个长度为n的字符串,字符串只包含小写字母 a,b;并且告诉景女神她最多可以改变k个字符(a->b, b->a);满神想知道经过不超过k次的改变后,出现相同字母的字符串(连续)的最大长度是多少。
景女神觉得这个题和她记单词并没有什么关系,于是就学英语去了。但是满神希望聪明的你可以帮助他解决这个问题。
Input
第一行输入两个整数n和k,用空格隔开 (1 <= n <= 100000, 0 <= k <= n);
第二行输入一个字符串。(只包含小写字母 a和b);
Output
Sample Input
4 2
abba
8 1
aabaabaa
Sample Output
4
5 Hint:
第一组样例:可以得到 aaaa 或者 bbbb;最大长度为4;
第二组样例:可以得到 aaaaabaa 或者 aabaaaaa; 最大长度的字符串是 aaaaa,长度为5; 首先我们不难发现如果要修改字母,只可能进行一种修改,也就是说:
修改操作都是把a改成b,或者都把b改成a
不可能有些操作是把a改成b,有些操作是把b改成a。
维护两个前缀,f[i]表示字符串的第1位带第i位中有几个a,
c[i]表示字符串的第1位到第i为中有几个b。(假设字符串从1开始标号)
那么现在考虑第i位,确定以s[i]为右端点,用上k次(或少于k次)的修改机会,能得到的相同字母的字符串
最左能延伸到哪里。
因为前缀都是单调递增的,那么二分就可以了。
两种字母都考虑一遍,同时更新答案。
#include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for(int i(a); i <= (b); ++i) const int N = + ; char s[N];
int a[N], c[N], f[N];
int n, k, l, r, cnt, ans; int main(){ while (~scanf("%d%d%s", &n, &k, s + )){
rep(i, , n) a[i] = s[i] == 'a' ? : ;
memset(c, , sizeof c);
memset(f, , sizeof f);
rep(i, , n) if (a[i] == ) c[i] = c[i - ] + ; else c[i] = c[i - ];
rep(i, , n) if (a[i] == ) f[i] = f[i - ] + ; else f[i] = f[i - ];
ans = ;
rep(i, , n){
l = , r = i;
if (l == r) cnt = l;
else{
while (l + < r){
int mid = (l + r) / ;
if (c[i] - c[mid - ] <= k) r = mid; else l = mid + ;
} if (c[i] - c[l - ] <= k) cnt = l; else cnt = r;
}
ans = max(ans, i - cnt + );
l = , r = i;
if (l == r) cnt = l;
else{
while (l + < r){
int mid = (l + r) / ;
if (f[i] - f[mid - ] <= k) r = mid; else l = mid + ;
} if (f[i] - f[l - ] <= k) cnt = l; else cnt = r;
}
ans = max(ans, i - cnt + );
} printf("%d\n", ans);
} return ; }
Poor ZKY
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Problem Description
ZKY学长只知道最初的火情,当他赶到家时已经是第X天了,他想知道现在的状况。
Input
每组样例以一个空行隔开。(1<=N<=10,0<=X<=10)
Output
Sample Input
3 2
...
...
.*. 4 1
....
.*..
....
....
Sample Output
.*.
***
*** .*..
***.
.*..
.... 暴力模拟一下。
#include <bits/stdc++.h> using namespace std; int a[][], b[][];
char s[];
int n, x; int main(){ while (~scanf("%d%d", &n, &x)){
for (int i = ; i <= n; ++i){
scanf("%s", s + );
for (int j = ; j <= n; ++j)
a[i][j] = s[j] == '.' ? : ;
} for (; x; x--){ memcpy(b, a, sizeof a);
for (int i = ; i <= n; ++i)
for (int j = ; j <= n; ++j) if (a[i][j]){
b[i - ][j] = b[i + ][j] = b[i][j - ] = b[i][j + ] = ;
} memcpy(a, b, sizeof b);
} for (int i = ; i <= n; ++i){
for (int j = ; j <= n; ++j) putchar(((a[i][j]) ? '*' : '.'));
putchar(); }
putchar();
} return ; }
素数迭代
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Problem Description
定义g(i)为f(i)的迭代次数,(迭代即f(f(f(...f(i))))),迭代次数至少为1。
当i为素数(即f(i) = i)的时候停止迭代。
现在给定三个数l, r, p,求[l, r]区间内有多少个数x满足g(x) = p;
Input
Output
Sample Input
90 90 3
2 9 1
2 9 2
800 810 4
999999 1000000 2
100000 1000000 1000000
Sample Output
1
4
4
5
2
0 Hint:
对于l = 2, r = 9, p = 2这组数据,根据题意得;
f(2) = 2;
f(3) = 3;
f(4) = 2;
f(5) = 5;
f(6) = 2+3 = 5;
f(7) = 7;
f(8) = 2;
f(9) = 3;
则迭代次数 g(i) = 2 的有g(4), g(6), g(8), g(9), 共有4个,因此输出4; 首先,用类似筛选素数的方法求出f(i)。
注意到每次迭代之后,原先的那个数是大幅度减小的,再最坏的情况下也会减小到原来的一半左右。
那么可以作出大胆的假设:g(i) <= 30 (1<=i<=1e6)事实上g(i) <= 12 (1<=i<=1e6)
那么暴力求g(i)就可以了。
接下来我们对询问离线操作。从1道12每次维护一个前缀,将对应的答案塞到询问中即可。
p大于12的询问不做处理,那么答案就是0。
#include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (int i(a); i <= (b); ++i) struct query{
int l, r, num, ans, id;
friend bool operator < (const query &a, const query &b){
return a.num < b.num;
}
} q[]; int p[];
int n;
int cnt;
int prime[];
int f[], g[]; int ct[]; bool cmp(const query &a, const query &b){
return a.id < b.id;
} int main(){ memset(p, , sizeof p);
rep(i, , ) if (!p[i]){
for (int j = i + i; j <= ; j += i){
p[j] = ;
}
} cnt = ;
rep(i, , ) if (!p[i]) prime[++cnt] = i; memset(f, , sizeof f);
rep(i, , cnt){
for (int j = prime[i]; j <= ; j += prime[i]){
f[j] += prime[i];
}
} memset(g, , sizeof g);
rep(i, , ){
int et = , now = i;
while (now != f[now]){
++et;
now = f[now];
} g[i] = et;
} int aa, bb, cc, n = ;
while (~scanf("%d%d%d", &aa, &bb, &cc)){
++n;
q[n].l = aa, q[n].r = bb, q[n].num = cc; q[n].id = n;
} sort(q + , q + n + );
rep(i, , ){
memset(ct, , sizeof ct);
rep(j, , ) if (g[j] == i) ct[j] = ct[j - ] + ; else ct[j] = ct[j - ];
rep(j, , n){
if (q[j].num == i) q[j].ans = ct[q[j].r] - ct[q[j].l - ];
}
} sort(q + , q + n + , cmp);
rep(i, , n) printf("%d\n", q[i].ans); }
神秘的迷宫
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Problem Description
ZZC学长只有找到钥匙才能打开暗门,他醒来后找到一张也是粗心的神秘组织成员留下的地图。
因为刚刚醒来,ZZC学长一分钟之内只能向上下左右走一格,走路的同时,他也能拿起钥匙或者打开暗门,不会影响走路速度。
ZZC学长希望以最快的速度离开迷宫,聪明的同学能帮帮他么?
Input
1、2、3、4分别表示每种暗门,5、6、7、8依次对应每种钥匙。(0 < N,M < 1000)
Output
Sample Input
3 3
...
.0.
.#. 5 5
*.0.*
.1*5*
.**.*
...**
*#***
Sample Output
1
11 hint:第二个样例里,ZZC学长先用2分钟拿到钥匙5,再用4分钟打开暗门1,最后用5分钟走到出口。 比较基础的加条件BFS,只是这个数据范围可能会MLE……然后发现开100*100的数组就够了。
#include <bits/stdc++.h> using namespace std; #define REP(i, n) for(int i(0); i < (n); ++i)
#define rep(i, a, b) for(int i(a); i <= (b); ++i)
#define dec(i, a, b) for(int i(a); i >= (b); --i)
#define for_edge(i, x) for(int i = H[x]; i; i = X[i]) #define LL long long
#define ULL unsigned long long
#define MP make_pair
#define PB push_back
#define FI first
#define SE second
#define INF 1 << 30 const int N = + ;
const int M = + ;
const int Q = + ;
const int A = + ; const int dx[] = {, , , -};
const int dy[] = {, , -, }; bool h[][][ <<];
char a[][];
int n, m; struct node{
int x, y, key, st;
bool check(){ return x >= && x < n && y >= && y < m && a[x][y] != '*';}
bool door(){ return a[x][y] >= '' && a[x][y] <= '';}
bool keyy(){ return a[x][y] >= '' && a[x][y] <= '';}
} start, cur, nx; int BFS(){
queue <node> q;
while (!q.empty()) q.pop();
memset(h, false, sizeof h);
h[start.x][start.y][start.key] = true;
q.push(start); while (!q.empty()){
cur = q.front(); q.pop();
if (a[cur.x][cur.y] == '#') return cur.st;
REP(i, ){
nx = cur; nx.x += dx[i], nx.y += dy[i], ++nx.st;
if (nx.check()){
if (nx.door()){
int key = a[nx.x][nx.y] - '';
if (nx.key & ( << key) && !h[nx.x][nx.y][nx.key])
h[nx.x][nx.y][nx.key] = true, q.push(nx);
}
else
if (nx.keyy()){
int key = << (a[nx.x][nx.y] - ''); nx.key |= key;
if (!h[nx.x][nx.y][nx.key]) h[nx.x][nx.y][nx.key] = true, q.push(nx);
} else
if (!h[nx.x][nx.y][nx.key]) h[nx.x][nx.y][nx.key] = true, q.push(nx);
}
}
} return -;
} int main(){ while (~scanf("%d%d", &n, &m)){
REP(i, n){
scanf("%s", a[i]);
REP(j, m) if (a[i][j] == '') start.x = i, start.y = j, start.key = , start.st = ;
} printf("%d\n", BFS());
} return ; }
这是一道简单题
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/102400K (Java/Other)
Problem Description
满叔叔会告诉你点数(星星个数)n和边数(轨迹个数)m以及每条边的两个点。
注意:两个三角形不同是:当对于两个三角形的边,某个三角形存在一条边在另一个三角形的边中无法找到!
保证数据没有重边和自环。
Input
第一行一个整数T<=10表示数据组数。
对于每组数据的第一行n表示星星个数,m表示星星划过的轨迹的个数,
接下来m行表示每个星星划过的轨迹的端点x,y(1<=x,y<=n)。
1<=n<=100000,1<=m<=min(100000,n*(n-1)/2)
Output
Sample Input
1
3 3
1 2
2 3
1 3
Sample Output
1 感人的题目标题……
这题很卡常数啊……
首先对所有点进行分类。1、度数>sqrt(m)。2、度数<sqrt(m)。
剩下的事情就是分类暴力。
注意添加边的时候要手写Hash。我还开了fread挂……
#include <bits/stdc++.h> using namespace std; const int N = ; #define REP(i, n) for(int i(0); i < (n); ++i)
#define rep(i, a, b) for(int i(a); i <= (b); ++i) int T, n, m, q, du[N];
int x, y, ans; vector <int> c[N];
vector <int> d; namespace IO{
const int MT = * * ;
char IO_BUF[MT];
int IO_PTR, IO_SZ; void begin(){
IO_PTR = ;
IO_SZ = fread (IO_BUF, , MT, stdin);
}
template<typename T>
inline bool scan_d (T & t){
while (IO_PTR < IO_SZ && IO_BUF[IO_PTR] != '-' && (IO_BUF[IO_PTR] < '' || IO_BUF[IO_PTR] > ''))IO_PTR ++;
if (IO_PTR >= IO_SZ) return false;
bool sgn = false;
if (IO_BUF[IO_PTR] == '-') sgn = true, IO_PTR ++;
for (t = ; IO_PTR < IO_SZ && '' <= IO_BUF[IO_PTR] && IO_BUF[IO_PTR] <= ''; IO_PTR ++)
t = t * + IO_BUF[IO_PTR] - '';
if (sgn) t = -t;
return true; }
inline bool scan_s (char s[]){
while (IO_PTR < IO_SZ && (IO_BUF[IO_PTR] == ' ' || IO_BUF[IO_PTR] == '\n') ) IO_PTR ++;
if (IO_PTR >= IO_SZ) return false;
int len = ;
while (IO_PTR < IO_SZ && IO_BUF[IO_PTR] != ' ' && IO_BUF[IO_PTR] != '\n')
s[len++] = IO_BUF[IO_PTR], IO_PTR ++;
s[len] = '\0';
return true;
}
}; namespace Hashmap{
const int P = , seed = ;
int u[N << ], v[N << ], nt[N << ];
int head[P], inum;
inline void init(){
inum = ;
memset(u, , sizeof u);
memset(v, , sizeof v);
memset(nt, , sizeof nt);
memset(head, , sizeof head);
} inline void add(int _u, int _v){
int t = (_u * seed + _v) % P;
u[++inum] = _u, v[inum] = _v, nt[inum] = head[t], head[t] = inum;
} inline bool query(int _u, int _v){
int t = (_u * seed + _v) % P;
for (int p = head[t]; p; p = nt[p])
if (u[p] == _u && v[p] == _v) return ;
return ;
}
} int main(){ IO::begin();
IO::scan_d(T); while (T--){
IO::scan_d(n);
IO::scan_d(m);
Hashmap::init();
rep(i, , n) c[i].clear();
memset(du, , sizeof du);
ans = ;
rep(i, , m){
IO::scan_d(x);
IO::scan_d(y);
Hashmap::add(x, y);
Hashmap::add(y, x);
c[x].push_back(y);
c[y].push_back(x);
++du[x], ++du[y];
} d.clear(); q = (int)sqrt((double)m); rep(i, , n) if (du[i] <= q){
REP(j, (int)c[i].size())
if (!(du[c[i][j]] <= q && c[i][j] < i))
rep(k, j + , (int)c[i].size() - )
if (!(du[c[i][k]] <= q && c[i][k] < i))
if (Hashmap::query(c[i][j], c[i][k])) ++ans;
}
else d.push_back(i); REP(i, (int)d.size())
rep(j, i + , (int)d.size() - ){
if (Hashmap::query(d[i], d[j]))
rep(k, j + , (int)d.size() - ){
if (Hashmap::query(d[j], d[k]))
if (Hashmap::query(d[i], d[k])) ++ans;
}
} printf("%d\n", ans);
} return ; }
NWU现场赛——解题报告的更多相关文章
- ZROIDay4-比赛解题报告
ZROIDay4-比赛解题报告 扯闲话 感觉这个出题人的题做起来全都没感觉啊,今天又凉了,T1完全不知道什么意思,T2只会暴力,T3现在还不懂什么意思,真的太菜了 A 题意半天没搞懂爆零GG了,讲了一 ...
- ZROIDay3-比赛解题报告
ZROIDay3-比赛解题报告 瞎扯 从今天开始考试有点不在状态,可能是因为不太适应题目的原因,T1已经接近了思想但是没有想到状态转移,T2思考方向错误,T3不会打LCT,还是太菜了 A 考场上想到要 ...
- 10.30 NFLS-NOIP模拟赛 解题报告
总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没 ...
- 2016ACM/ICPC亚洲区大连站现场赛题解报告(转)
http://blog.csdn.net/queuelovestack/article/details/53055418 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原 ...
- CH Round #56 - 国庆节欢乐赛解题报告
最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...
- 2018.10.26NOIP模拟赛解题报告
心路历程 预计得分:\(100 + 100 + 70\) 实际得分:\(40 + 100 + 70\) 妈妈我又挂分了qwq..T1过了大样例就没管,直到临考试结束前\(10min\)才发现大样例是假 ...
- 11.1NOIP模拟赛解题报告
心路历程 预计得分:\(100 + 100 + 50\) 实际得分:\(100 + 100 + 50\) 感觉老师找的题有点水呀. 上来看T1,woc?裸的等比数列求和?然而我不会公式呀..感觉要凉 ...
- NOI 2015 滞后赛解题报告
报同步赛的时候出了些意外.于是仅仅能做一做"滞后赛"了2333 DAY1 T1离线+离散化搞,对于相等的部分直接并查集,不等部分查看是否在同一并查集中就可以,code: #incl ...
- [ACM]2013山东省“浪潮杯”省赛 解题报告
题目地址:http://acm.upc.edu.cn/problemset.php?page=13 2217~2226 A.Rescue The Princess 一个等边三角形告诉前2个点,求逆时 ...
随机推荐
- Android 完美解决bundle实现页面跳转并保留之前数据+传值
1.前言 前言: 昨天碰到了一个问题,我想实现页面跳转,采用了Bundle之后,再回到原来的页面,发现数据也没有了, 而且一直报错,网上查找了很多资料,发现要用一个startActivityForRe ...
- Proguard returned with error code 1. See console
满世界的bug. 微信支付,Windows的远程桌面. Android的 , Proguard returned with error code 1. See console解决办法" 真的 ...
- 平衡树 - Luogu 1486 郁闷的出纳员
这么久没写平衡树了,再来一发... P1486 郁闷的出纳员 题目描述 OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的 ...
- 再写一篇tps限流
再写一篇tps限流 各种限流算法的称呼 网上有很多文章介绍限流算法,但是对于这些算法的称呼与描述也是有点难以理解.不管那么多了.我先按我理解的维度梳理一下. 主要维度是:是正向计数还是反向计数.是定点 ...
- Selenium 中 高亮元素
//高亮元素 WebElement element = driver.findElement(By.cssSelector(".table1 .btn-public label" ...
- CentOS安装jdk和tomcat
1.查看是否已经安装 java -version 2.卸载自带的openjdk dnf remove java-1.7.0-openjdk 3.下载jdk安装包 wget -c http://111. ...
- LeetCode with Python -> Dynamic Programming
198. House Robber You are a professional robber planning to rob houses along a street. Each house ha ...
- linux自动执行指令crontab和at
目录 1 at和crontab指令 2 batch 一.at与crontab的区别 运行方式不同 at只运行一次,crontab循环运行 依赖的服务不同 at 对应的服务是 atd crontab 对 ...
- 常用JS整理
目录 1 事件 a addEventListener--绑定事件b removeEventListener--解绑事件,只能解开addEventListener绑定的事件 2 JS获取节点信息a by ...
- Spring框架配置beans.xml
Spring学习笔记(一) 一.Spring 框架 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 ...