几道STL题目(FJUT - OJ STL训练1)
- 这个OJ一直在做,一些专题题目都很好,从易至难,阶梯上升,很适合像我这样的蒟蒻 =7=
- 这篇是关于其中一个专题训练的题解思路及代码 http://120.78.128.11/Contest.jsp?cid=486
- 所有题面我就不贴了,各位自行去看,链接在上一行 =7=
一、求众数(Map标记+Set)
- 其实数组维护也可以做,但既然是STL训练,就用STL的东西了
- 用map标记数据和出现的次数,然后转入结构体存入map中
- 为什么不直接用set<map<T,T> >的形式 是因为map只能对关键字排序,而我们需要排次数,所以存入set中先转存入结构体
- 然后没啥坑点,结构体自己构造一个排序就行了,如何构造请看另一篇博文
- 代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <sstream>
#include <iomanip>
#include <map>
#include <stack>
#include <deque>
#include <queue>
#include <vector>
#include <set>
#include <list>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <bitset>
#include <ctime>
#include <fstream>
#include <limits.h>
#include <numeric> using namespace std; #define F first
#define S second
#define mian main
#define ture true #define MAXN 1000000+5
#define MOD 1000000007
#define PI (acos(-1.0))
#define EPS 1e-6
#define MMT(s) memset(s, 0, sizeof s)
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef stringstream sstm;
const int INF = 0x3f3f3f3f; struct node{
int sum,x;
bool operator <(const node &b)const{
if(sum == b.sum)
return x < b.x;
else
return sum > b.sum;
}
}; map<int,int >q;
set<node>p;
set<node>::iterator it; int main(){
ios_base::sync_with_stdio(false);
cout.tie();
cin.tie();
int n,t,x,d,e;
while(~scanf("%d",&n)){
q.clear();
p.clear();
while(n--){
scanf("%d",&t);
if(t == ){
scanf("%d",&x);
q[x]++;
p.insert((node){q[x],x});
}
else{
if(!p.empty()){
e = p.begin()->sum;
int flag = ;
for(it = p.begin(); it != p.end(); it++){
if(it->sum == e){
if(flag++)
printf(" ");
printf("%d",it->x);
}
else
break;
}
puts("");
}
} }
}
}
二、营业额统计(Set)
- 这个题用Set中的lower_bound函数直接找就行了 =7=
- 没啥讲的 代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <sstream>
#include <iomanip>
#include <map>
#include <stack>
#include <deque>
#include <queue>
#include <vector>
#include <set>
#include <list>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <bitset>
#include <ctime>
#include <fstream>
#include <limits.h>
#include <numeric> using namespace std; #define F first
#define S second
#define mian main
#define ture true #define MAXN 1000000+5
#define MOD 1000000007
#define PI (acos(-1.0))
#define EPS 1e-6
#define MMT(s) memset(s, 0, sizeof s)
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef stringstream sstm;
const int INF = 0x3f3f3f3f; set<int>q; int main(){
ios_base::sync_with_stdio(false);
cout.tie();
cin.tie();
int n;
while(~scanf("%d",&n)){
q.clear();
int x;
ll sum = ;
while(n--){
scanf("%d",&x);
if(q.empty()){
sum += x;
q.insert(x);
}
else{
set<int>::iterator l = --q.lower_bound(x);
set<int>::iterator r = q.lower_bound(x);
int temp = min(abs(*l - x),abs(*r - x));
sum += temp;
q.insert(x);
}
}
printf("%lld\n",sum);
} return ;
}
三、宠物收养所(Set)
- 和上一题类似,Set::Lower_bound直接搞就行了
- 代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <sstream>
#include <iomanip>
#include <map>
#include <stack>
#include <deque>
#include <queue>
#include <vector>
#include <set>
#include <list>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <bitset>
#include <ctime>
#include <fstream>
#include <limits.h>
#include <numeric> using namespace std; #define F first
#define S second
#define mian main
#define ture true #define MAXN 1000000+5
#define MOD 1000000007
#define PI (acos(-1.0))
#define EPS 1e-6
#define MMT(s) memset(s, 0, sizeof s)
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef stringstream sstm;
const int INF = 0x3f3f3f3f; set<int>q; int main(){
ios_base::sync_with_stdio(false);
cout.tie();
cin.tie();
int n;
while(~scanf("%d",&n)){
q.clear();
int t,x;
ll sum = ;
while(n--){
scanf("%d%d",&t,&x);
if(t == ){
q.insert(x);
}
else{
if(q.empty()){
continue;
}
set<int>::iterator l = --q.lower_bound(x);
set<int>::iterator r = q.lower_bound(x);
if(r == q.begin()){
sum += abs(*r - x);
q.erase(r);
}
else{
int ll = abs(*l - x);
int rr = abs(*r - x);
if(ll == rr){
sum += ll;
q.erase(l);
}
else if(ll < rr){
sum += ll;
q.erase(l);
}
else if(ll > rr){
sum += rr;
q.erase(r);
}
}
}
}
printf("%lld\n",sum);
} return ;
}
四、第二集 你说,你的女朋友就是你的电脑(Stack)
- 无力吐槽标题以及题面 =7=
- Stack模拟一下就行
- 代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <sstream>
#include <iomanip>
#include <map>
#include <stack>
#include <deque>
#include <queue>
#include <vector>
#include <set>
#include <list>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <bitset>
#include <ctime>
#include <fstream>
#include <limits.h>
#include <numeric> using namespace std; #define F first
#define S second
#define mian main
#define ture true #define MAXN 1000000+5
#define MOD 1000000007
#define PI (acos(-1.0))
#define EPS 1e-6
#define MMT(s) memset(s, 0, sizeof s)
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef stringstream sstm;
const int INF = 0x3f3f3f3f; char s[]; int main(){
ios_base::sync_with_stdio(false);
cout.tie();
cin.tie();
while(~scanf("%s",s)){
stack<char>q;
char ch;
int flag = ;
int len = strlen(s);
for(int i = ; s[i] != '\0'; i++){
ch = s[i];
if(ch == '(' || ch == '{' || ch == '[' || ch == '<'){
q.push(ch);
}
else{
char tp;
if(s[i] == '}')
tp = '{';
else if(s[i] == '>')
tp = '<';
else if(s[i] == ']')
tp = '[';
else if(s[i] == ')')
tp = '(';
if(!q.empty()){
if(q.top() == tp)
q.pop();
}
else{
flag = ;
break;
}
}
}
if(flag){
if(q.empty())
puts("YES");
else
puts("NO");
}
else{
puts("NO");
}
} return ;
}
五、Jokes(Map+Queue维护)
- 用一个队列存记得的笑话,然后 map标记一下就行了
- 不过注意的是她能记m天包括当前天,所以存以前的笑话应该是m-1天(开始没注意 =7=)
- 代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <sstream>
#include <iomanip>
#include <map>
#include <stack>
#include <deque>
#include <queue>
#include <vector>
#include <set>
#include <list>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <bitset>
#include <ctime>
#include <fstream>
#include <limits.h>
#include <numeric> using namespace std; #define F first
#define S second
#define mian main
#define ture true #define MAXN 1000000+5
#define MOD 1000000007
#define PI (acos(-1.0))
#define EPS 1e-6
#define MMT(s) memset(s, 0, sizeof s)
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef stringstream sstm;
const int INF = 0x3f3f3f3f; int main(){
ios_base::sync_with_stdio(false);
cout.tie();
cin.tie();
int n,m;
while(~scanf("%d%d",&n,&m)){
int tot = ,flag = ;
map<int,int>q;
queue<int>vis;
if(n <= m){
flag = ;
}
for(int i = ; i < n; i++){
int temp;
scanf("%d",&temp);
if(q[temp] == )
q[temp] = ,tot++;
if(vis.size() == m-){
q[vis.front()] = ;
vis.pop();
}
vis.push(temp);
}
printf("%d",tot);
} return ;
}
六、Log大侠(线段树+离线)
- 据说好像是某年蓝桥杯的题 然后暴力能水60%数据 =7=
- 离线加线段树 不过建树的时候把1标记为2 输出时候减去标记数量 不然1会影响更新操作
- 至于线段树不会离线不懂得话 =7= 后面慢慢讲 这里只讲题解思路
- 代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <sstream>
#include <iomanip>
#include <map>
#include <stack>
#include <deque>
#include <queue>
#include <vector>
#include <set>
#include <list>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <bitset>
#include <ctime>
#include <fstream>
#include <limits.h>
#include <numeric> using namespace std; #define F first
#define S second
#define mian main
#define ture true #define MAXN 1000000+5
#define MOD 1000000007
#define PI (acos(-1.0))
#define EPS 1e-6
#define MMT(s) memset(s, 0, sizeof s)
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef stringstream sstm;
const int INF = 0x3f3f3f3f; const int maxn = ;
int num[];
ll tree[maxn<<];
int n,m;
int l,r;
int cnt; void build(int x,int l, int r){
if (l == r){
cin >> tree[x];
if (tree[x] == ){
cnt++;
tree[x] = ;
}
return;
} int mid = (l+r)/;
build((x<<),l,mid);
build((x<<)+,mid+,r);
tree[x] = tree[(x<<)]+tree[(x<<)+];
} void update(int x,int l,int r,int L,int R){
if (tree[x] == (r-l+)<<){
return ;
}
if (l == r){
tree[x] = num[tree[x]];
return;
} int mid = (l+r)/;
if (R <= mid)
update((x<<),l,mid,L,R);
else if (L > mid)
update((x<<)+,mid+,r,L,R);
else{
update((x<<),l,mid,L,mid);
update((x<<)+,mid+,r,mid+,R);
}
tree[x] = tree[(x<<)]+tree[(x<<)+];
} int main(){
ios_base::sync_with_stdio(false);
cout.tie();
cin.tie();
for(int i = ; i <= maxn; i++)
num[i] = (int)(log2(i) + );
cin >> n >> m; build(,,n);
while(m--){
cin >> l >> r;
update(,,n,l,r);
cout << tree[] - cnt << endl;
}
return ;
}
七、哈利什么什么什么的
- 这题没做
- 题目太长了 写了一下 WA了 后面再想吧 =7=
八、LRU算法实现(Map维护+Set)
- 这题没做出来
- 我的思路是两个map标记数据 和 是否存在(因为数据可能为0),然后Set记录是否最近走过,提交上去无情wa了两发
- 我看了大佬的代码,基本都是用三个Map标记。溜了溜了
- 这里就贴一下大佬的AC代码吧:
/**
rid: 195317
user: sandychn
time: 2018-07-21 10:40:16
result: Accepted
*/ #include <bits/stdc++.h>
using namespace std;
typedef long long ll; struct LRU {
map <int, ll> key_value;
map <int, int> time_key;
map <int, int> key_time;
LRU() {
clear();
}
~LRU() {
}
void clear() {
key_value.clear();
time_key.clear();
key_time.clear();
}
void insert(int time, int key, ll value) {
key_value[key] = value;
time_key[time] = key;
key_time[key] = time;
}
ll get(int key) {
auto it = key_value.find(key);
if(it == key_value.end())
return -;
return it->second;
}
void remove(int key) {
auto it_key_time = key_time.find(key);
if(it_key_time == key_time.end())
return;
int time = it_key_time->second;
key_time.erase(it_key_time);
key_value.erase(key);
time_key.erase(time);
}
void visit(int key, int time) {
auto it_key_time = key_time.find(key);
if(it_key_time == key_time.end())
return;
int old_time = it_key_time->second;
key_time[key] = time;
time_key.erase(old_time);
time_key[time] = key;
}
void pop() {
if(time_key.empty())
return;
int key = time_key.begin()->second;
// printf("Element %d has been erased.\n", key);
key_time.erase(key);
key_value.erase(key);
time_key.erase(time_key.begin());
}
};
LRU lru;
int main() {
// freopen("../in.txt", "r", stdin);
int n, time, k;
ll v;
char opt[];
while(scanf("%d", &n) != EOF) {
lru.clear();
for(time = ; time <= n; ++time) {
scanf("%s", opt);
if(opt[] == 'i') {
scanf("%d %lld", &k, &v);
lru.insert(time, k, v);
} else if(opt[] == 'p') {
lru.pop();
} else {
scanf("%d", &k);
if(opt[] == 'g')
printf("%lld\n", lru.get(k));
else if(opt[] == 'v')
lru.visit(k, time);
else if(opt[] == 'r')
lru.remove(k);
}
}
}
return ;
}
九、Registration system(Map)
- 进去一看英文题 不想做 ,
- 看了下样例觉得不难,等下做了再写
- 做完回来了map模拟就好 直接看代码吧 =7=
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <sstream>
#include <iomanip>
#include <map>
#include <stack>
#include <deque>
#include <queue>
#include <vector>
#include <set>
#include <list>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <bitset>
#include <ctime>
#include <fstream>
#include <limits.h>
#include <numeric> using namespace std; #define F first
#define S second
#define mian main
#define ture true #define MAXN 1000000+5
#define MOD 1000000007
#define PI (acos(-1.0))
#define EPS 1e-6
#define MMT(s) memset(s, 0, sizeof s)
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef stringstream sstm;
const int INF = 0x3f3f3f3f; int main(){
ios_base::sync_with_stdio(false);
cout.tie();
cin.tie();
int n;
cin>>n;
map<string,int>q;
while(n--){
string s;
cin>>s;
if(q[s] == ){
q[s]++;
cout << "OK" << endl;
}
else{
cout << s << q[s] << endl;
q[s]++;
}
} return ;
}
十、统计难题(Map)
- 我是直接用map把输入的每个字符串的前缀全部记录
- 然后直接输出就行
- 如果是每次都去匹配的话应该会TLE
- 值得注意的是这个题的输入格式,中间仅仅换了一行(各位还没见过这种格式输入可以自己先想想)
- 代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <sstream>
#include <iomanip>
#include <map>
#include <stack>
#include <deque>
#include <queue>
#include <vector>
#include <set>
#include <list>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <bitset>
#include <ctime>
#include <fstream>
#include <limits.h>
#include <numeric> using namespace std; #define F first
#define S second
#define mian main
#define ture true #define MAXN 1000000+5
#define MOD 1000000007
#define PI (acos(-1.0))
#define EPS 1e-6
#define MMT(s) memset(s, 0, sizeof s)
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef stringstream sstm;
const int INF = 0x3f3f3f3f; map<string,int>cot; int main(){
ios_base::sync_with_stdio(false);
cout.tie();
cin.tie(); char temp[];
string s;
while(){
getline(cin,s);
if(!s[])
break;
MMT(temp);
for(int i = ; i < s.size(); i++){
temp[i] = s[i];
cot[temp]++;
}
}
while(cin>>s){
printf("%d\n",cot[s]);
} return ;
}
十一、看病要排队(Priority_Queue)
- 又是排队又是STL 肯定就是优先队列啦
- 三个优先队列分别记录三个医生的病人,然后模拟即可
- 代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <sstream>
#include <iomanip>
#include <map>
#include <stack>
#include <deque>
#include <queue>
#include <vector>
#include <set>
#include <list>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <bitset>
#include <ctime>
#include <fstream>
#include <limits.h>
#include <numeric> using namespace std; #define F first
#define S second
#define mian main
#define ture true #define MAXN 1000000+5
#define MOD 1000000007
#define PI (acos(-1.0))
#define EPS 1e-6
#define MMT(s) memset(s, 0, sizeof s)
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef stringstream sstm;
const int INF = 0x3f3f3f3f; struct node{
int id;
int cnt;
node(int id,int cnt):id(id),cnt(cnt){}
friend operator < (node a,node b){
if(a.cnt == b.cnt){
return a.id > b.id;
}
return a.cnt < b.cnt;
}
}; int main(){
ios_base::sync_with_stdio(false);
cout.tie();
cin.tie();
int n;
while(cin>>n){
priority_queue<node>j,k,l;
int tot = ;
for(int i = ; i <= n; i++){
string s;
int a,b;
cin>>s;
if(s[] == 'I'){
cin>>a>>b;
node tp(tot++,b);
if(a == ){
j.push(tp);
}
else if(a == ){
k.push(tp);
}
else if(a == ){
l.push(tp);
}
}
else if(s[] == 'O'){
cin>>a;
if(a == ){
if(j.empty()){
cout<<"EMPTY"<<endl;
}
else{
node tp = j.top();
j.pop();
cout<<tp.id<<endl;
}
}
else if(a == ){
if(k.empty()){
cout<<"EMPTY"<<endl;
}
else{
node tp = k.top();
k.pop();
cout<<tp.id<<endl;
}
}
else if(a == ){
if(l.empty()){
cout<<"EMPTY"<<endl;
}
else{
node tp = l.top();
l.pop();
cout<<tp.id<<endl;
}
} }
}
}
return ;
}
十二、Stone(Priority_Queue)
- 同第九题,英文题,现在不想做,等下再做
- 做完回来了,优先队列模拟就行了
- 自己写个排序按照位置排序,注意位置相同时候,得优先能抛最远的
- 代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <sstream>
#include <iomanip>
#include <map>
#include <stack>
#include <deque>
#include <queue>
#include <vector>
#include <set>
#include <list>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <bitset>
#include <ctime>
#include <fstream>
#include <limits.h>
#include <numeric> using namespace std; #define F first
#define S second
#define mian main
#define ture true #define MAXN 1000000+5
#define MOD 1000000007
#define PI (acos(-1.0))
#define EPS 1e-6
#define MMT(s) memset(s, 0, sizeof s)
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef stringstream sstm;
const int INF = 0x3f3f3f3f; struct node{
int pos,num;
bool operator < (const node b)const{
if(pos != b.pos)
return b.pos < pos;
return b.num < num;
}
}; int main(){
ios_base::sync_with_stdio(false);
cout.tie();
cin.tie();
int t,n;
node tp;
cin>>t;
while(t--){
cin>>n;
priority_queue<node>q;
for(int i = ; i < n; i++){
cin>>tp.pos>>tp.num;
q.push(tp);
}
int flag = ;
while(!q.empty()){
tp = q.top();
q.pop();
if(flag){
flag = ;
tp.pos += tp.num;
q.push(tp);
}
else
flag = ;
}
cout << tp.pos << endl;;
}
return ;
}
十三、离散化(Set+Vector)
- 字符串离散化,数据处理的基础题吧
- 因为C++有字符串类型,直接用string就行了,因为它内置了比较函数
- 然后我用的是Set去重,转入Vector中找位置就行了,(注意Set有无序性!)
- 其实也可以在Vector中利用unique去重,都行啦。
- 代码:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <sstream>
#include <iomanip>
#include <map>
#include <stack>
#include <deque>
#include <queue>
#include <vector>
#include <set>
#include <list>
#include <cstring>
#include <cctype>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <bitset>
#include <ctime>
#include <fstream>
#include <limits.h>
#include <numeric> using namespace std; #define F first
#define S second
#define mian main
#define ture true #define MAXN 1000000+5
#define MOD 1000000007
#define PI (acos(-1.0))
#define EPS 1e-6
#define MMT(s) memset(s, 0, sizeof s)
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef stringstream sstm;
const int INF = 0x3f3f3f3f; set<string>s;
vector<string>p;
char a[][]; int main(){
ios_base::sync_with_stdio(false);
cout.tie();
cin.tie();
int n;
while(~scanf("%d",&n)){
s.clear();
p.clear();
for(int i = ; i < n; i++){
scanf("%s",&a[i]);
s.insert(a[i]);
}
p.assign(s.begin(),s.end());
for(int i = ; i < n; i++){
printf("%d\n",lower_bound(p.begin(),p.end(),a[i]) - p.begin() + );
}
}
return ;
}
大部分都是一些基础题,我猜他们开这个专题也是为了让大家熟悉STL中的东西。
还是很值得一做的。毕竟多做题总是有好处。
我做的时候有些题目TLE了,所以也不是说直接上去写个什么什么就AC了,还是很值得一做的,还有这个OJ有些题目会提交失败,各位可以搜题然后去原OJ提交。
别问我为啥做这个OJ,很多都有做,还有就是,这个OJ界面做的很好有木有,题目也很好啦。
几道STL题目(FJUT - OJ STL训练1)的更多相关文章
- stl 题目总结
stl 题目总结 一.圆桌问题 1 .问题: 圆桌上围坐着2n个人.其中n个人是好人,另外n个人是坏人.如果从第一个人开始数数,数到第m个人,则立即处死该人:然后从被处死的人之后开始数数,再将数到的第 ...
- TOM大叔的几道Javascript题目与解答
几道JS题目 之前没有深入研究js语言,最近几年前端越来越工程化,需要扎实的js基础,看到博客园上有很多大牛分享JS学习文章,幸运看到tom大叔的blog,抽时间潜心学习了其文章,遇到到其出的几道题目 ...
- 泛型编程、STL的概念、STL模板思想及其六大组件的关系,以及泛型编程(GP)、STL、面向对象编程(OOP)、C++之间的关系
2013-08-11 10:46:39 介绍STL模板的书,有两本比较经典: 一本是<Generic Programming and the STL>,中文翻译为<泛型编程与STL& ...
- STL非变易算法 - STL算法
欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1394600460.html 原创:ST ...
- 【19道XSS题目】不服来战!(转)
[19道XSS题目]不服来战! 记得第一次接触xss这个概念是在高中,那个时候和一个好基友通过黑客X档案和黑客手册.第一次接触到了除了游戏以外的电脑知识,然后知道了,原来电脑除了玩游戏还可以搞这些,从 ...
- 搜索专题题解(FJUT - OJ 17级搜索强化训练)
题目连接:http://120.78.128.11/Contest.jsp?cid=221#H 题目都比较难,每道题都很经典,我也做的很慢,这篇博文算是个收录.具体题目题解点击下面超链接吧. 一.Br ...
- calc 多项式计算 (STL版和非STL版) -SilverN
计算(calc.cpp) [问题描述] 小明在你的帮助下,破密了Ferrari设的密码门,正要往前走,突然又出现了一个密码门,门上有一个算式,其中只有“(”,“)”,“0-9”,“+”,“-”,“*” ...
- 转:STL使用入门( Using STL)
1 介绍 我最开始结束C++编程是从DOS下的Borland C++开始的.那时他们在最新版本3.1中就包含了一套模板库用来做collection.那真是个好东东.当我开始使用Visual C++ 2 ...
- 【19道XSS题目】不服来战!
记得第一次接触xss这个概念是在高中,那个时候和一个好基友通过黑客X档案和黑客手册.第一次接触到了除了游戏以外的电脑知识,然后知道了,原来电脑除了玩游戏还可以搞这些,从此两人一发不可收拾的爱上了玩黑这 ...
随机推荐
- 洛谷 P2787 语文1(chin1)- 理理思维
题意简述 维护字符串,支持以下操作: 0 l r k:求l~r中k的出现次数 1 l r k:将l~r中元素赋值为k 2 l r:询问l~r中最大连续1的长度 题解思路 珂朵莉树暴力赋值,查询 代码 ...
- Python模拟登录淘宝
最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录淘宝的文章!看了下网上有很多关于模拟登录淘宝,但是基本都是使用scrapy.pyppeteer.sel ...
- JSP引擎、JSP容器、Web服务器
JSP引擎与JSP容器指的都是同一样的东西,他们都是用来同一管理和运行Web引用程序的“软件”.常见的JSP引擎有Tomcat.JRun.Resin 广义上来说,JSP引擎是用来管理和运行Web应用程 ...
- python实现RSA加密和签名以及分段加解密的方案
1.前言 很多朋友在工作中,会遇到一些接口使用RSA加密和签名来处理的请求参数,那么遇到这个问题的时候,第一时间当然是找开发要加解密的方法,但是开发给加解密代码,大多数情况都是java,c++,js等 ...
- 《Java 8 in Action》Chapter 4:引入流
1. 流简介 流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现).就现在来说,你可以把它们看成遍历数据集的高级迭代器.此外,流还可以透明地并行 ...
- linux安装redis详细步骤(系统centos 6.4 )
1.安装redis 进入安装目录下载: cd /usr/local/redis wget http://download.redis.io/releases/redis-3.0.7.tar.gz 解 ...
- (数据科学学习手札67)使用Git管理Github仓库
一.简介 Git是目前使用最广泛的分布式版本控制系统,通过Git可以方便高效地管理掌握工作过程中项目内容文件的更新变化情况,通过Git我们可以以命令行的形式完成对Github上开源仓库的clone,以 ...
- javaScript 基础知识汇总(五)
1.垃圾回收 JavaScript 的内存管理是自动的,不能强制执行或者阻止执行 可达性 JavaScript中主要的内存管理概念是可达性. 什么是可达性? 定义一个对象 let user = { n ...
- 解决npm报错:Module build failed: TypeError: this.getResolve is not a function
1.sass-loader的版本过高导致的编译错误,当前最高版本是8.x,需要退回到7.3.1 运行: npm uninstall sass-loader --save-dev(卸载当前版本) npm ...
- 以股票RSI指标为例,学习Python发送邮件功能(含RSI指标确定卖点策略)
本人之前写过若干“给程序员加财商”的系列文,目的是通过股票案例讲述Python知识点,让大家在学习Python的同时还能掌握相关的股票知识,所谓一举两得. 在之前的系列文里,大家能看到K线,均线,成交 ...