@baobaobear
2020-03-01T11:38:49.000000Z
字数 11109
阅读 549
contest
#include<iostream>
#include<stack>
#include<cstdio>
#include<map>
#include<set>
#include<queue>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std;
typedef long long ll;
#define me(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
const int N=500005;
int main()
{
int t,f,n;
double sum;
cin>>t;
while(t--)
{
f=1;
sum=0;
cin>>n;
for(int i=1;i<=n;i++)
{
sum+=(1.0/i)*f;
f*=-1;
}
printf("%.2f\n",sum);
}
return 0;
}
_Wallace_
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int n;
int a[105];
inline bool cmp(const int &a,const int &b){
return abs(a)>abs(b);
}
void solve()
{
for(register int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+1+n,cmp);
for(register int i=1;i<=n;i++) cout<<a[i]<<((i!=n)?" ":"");
cout<<endl;
}
signed main()
{
while(cin>>n&&n) solve();
}
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<string>
#include<sstream>
#include<algorithm>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<vector>
using namespace std;
int n;
long long a[40];
int main()
{
a[1] = 2;
for (int i = 2; i <= 35; i++) a[i] = 2 + 3 * a[i - 1];
while(~scanf("%d", &n))
{
printf("%lld\n", a[n]);
}
}
#include <iostream>
#include <vector>
using namespace std;
vector<pair<char, int > > a;
int t, n;
int main() {
cin >> t;
while(t--) {
cin >> n;
a.clear();
char last, ch;
int num = 1;
cin >> ch;
last = ch;
for(int i = 2; i <= n; ++i) {
cin >> ch;
if(ch == last) ++num;
else {
a.push_back(make_pair(last, num));
last = ch;
num = 1;
}
}
if(num) a.push_back(make_pair(last, num));
bool ans = 0;
for(int i = 0; i < (int)a.size() - 2; ++i)
if(a[i].second >= a[i + 1].second && a[i + 1].second <= a[i + 2].second)
if(a[i].first == a[i + 1].first - 1 && a[i].first == a[i + 2].first - 2)
ans = 1;
cout << (ans ? "YES\n" : "NO\n");
}
return 0;
}
/**************************************************************************************************
O[OOO@@OO@@O@@O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O^...=@@@@@@@@@@@@@@O[.........=@@@@@@@@@@@@
.....[OOOOOOOOOOOOO@@@@@@@@@@@OOOOOOOOO@@OOOOOOOOOOOOO[..../OOOO@@@@@@/\O/............OOOOOOOOOOOOO
^........,\OOOOOOOO@@@@@@@@@@OOOOOOOOOOO[[....................,[OOOO`.........`./O...=OOOOOOOOOOOOO
O`....].........,\O@@@@@@@@@@OOOOOO/........................................,O@@@^.../OOOOOOOOOOOOO
OO....O@@\`.........,\@@@@@@@OOO[..........................................=@@@@@`..,OOOOOOOOOOOOOO
@@\...=@@@@@\...........,\@@@`............................................*`=@@@/...OOOOOOOOOOOOOOO
@@@O...=@@@^,`..............................................................=/@@...=OOOOOOOOOOOOOOO
@@@@\...O@OO`.................................................................\^...OOOOOOOOOOOOOOOO
@@@@@\...\@`......................................................................OOOOOOOOOOOOOOOOO
@@@@@@\.../......................................................................=OOOOOOOOOOOOOOOOO
OOOOOOO.......................... ................................................\@@OOOOOOOOOOOOOO
@@@@@@@@@`................................=^...................^...................=@@@@@@@@@@@@@@@
@@@@@@@@@@...*.............................*...................*....................O@@@@@@@@@@@@@@
OOOOOOOOO.....**............. .......................................................@@@@@@@@@@@@@@
OOOOOOOOOOO`..****..........................*................................. ......=@@@@@@@@@@@@@
OOOOOOOOOOOOOO.*****,............................. ...................................O@@@@@@@@@@@@
@@@@@@@@@@@@O...***./..*..............................................................O@@@@@@@@@@@@
@@@@@@@@@@@@..........,..........,`........................................*......*..*=@@@@@@@@@@@@
@@@@@@@@@@@^.........*.,`......,@@@@@@@@@@@@@@@@@@@\]]]`...,]]@@@@@@@@@[\@@/@@@@@@O....O@@@@@@@@@@@
@@@@@@@@@@O.,`.......=.........,@@@@O[..,/OOOOO\....@@@@@@@@@@`.OOOOOOOO.,....=@@@O....\@@@@@@@@@@@
@@@@@@@@@@`=@^...................\@@[..=/[,\`..\.....@@`...@@@..,]....,/.......@@^[^...=@@@@@@@@@@@
@@@@@@@@@@=@@^....................@@....[\`..][.....@@`.....\@\....,[.........,@@....=.=@@@@@@@@@@@
@@@@@@@@@\@@O..........^..........,@^.............]@/........,@@`.............//....*...@@@@@@@@@@@
@@@@@@@@@@@@^.........*,.`..........@@\]]]..,]]/@/[............,\@@\]]`..,]]/@/.......*.\O@@@@@@@@@
@@@@@@@@@@@@.....**...=*,*..................................................*`........*.=@@@@@@@@@@
@@@@@@@@@@@O......*...,**=^...........................................................*..O@@@@@@@@@
OOOOOOOOOOO^......*...*`**,.. .........................................,.................OO@@@@@@@@
OOOOOOOOOOO^..........*^***,.. .....................................**..................OO@@@@@@@@
@@@@@@@OO@@..*.........^****\.........**\].......................]*.....................*OO@@@@@@@@
@@@@@@OO@@^......*.....=\***=`.........*=^**,[]`.............``.**...**............/`...=@@@@@@@@@@
@@@@@OO@@O^..,..**...*..=****o..........*=*********[,]...]o*.....*******.............../OO@@@@@@@@@
@@@@OO@@OO\..=/..**...*..o`**,^*........*=***************,/**...*******..........*..../@@@@@@@@@@@@
@@@OO@@@OO@^..O^.....@@@O/O],[\]]......../@@@\`*******]@@@@`*..***,//`]/@@@^....*...,/@@@@@@@@@@@@@
@@OO@@@OO@O\...O.....,@@@@@@@@@@@@`...@@/@@@@@@@`.**,@@@@@@@@@@@O]/@@@@@@@@.........=@@@@@@@@@@@@@@
**************************************************************************************************/
#include<set>
#include<map>
#include<stack>
#include<queue>
#include<cmath>
#include<cstdio>
#include<cctype>
#include<string>
#include<vector>
#include<climits>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define endl '\n'
#define rtl rt<<1
#define rtr rt<<1|1
#define lson rt<<1, l, mid
#define rson rt<<1|1, mid+1, r
#define maxx(a, b) (a > b ? a : b)
#define minn(a, b) (a < b ? a : b)
#define zero(a) memset(a, 0, sizeof(a))
#define INF(a) memset(a, 0x3f, sizeof(a))
#define IOS ios::sync_with_stdio(false)
#define _test printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n")
using namespace std;
typedef long long ll;
typedef pair<int, int> P;
typedef pair<ll, ll> P2;
const double pi = acos(-1.0);
const double eps = 1e-7;
const ll MOD = 1000000007LL;
const int INF = 0x3f3f3f3f;
const int _NAN = -0x3f3f3f3f;
const double EULC = 0.5772156649015328;
const int NIL = -1;
template<typename T> void read(T &x){
x = 0;char ch = getchar();ll f = 1;
while(!isdigit(ch)){if(ch == '-')f*=-1;ch=getchar();}
while(isdigit(ch)){x = x*10+ch-48;ch=getchar();}x*=f;
}
const int maxn = 1e6+10;
char str1[maxn], str2[maxn];
int main(void) {
scanf("%s %s", str1, str2);
bool ok = true;
int len1 = strlen(str1), len2 = strlen(str2);
if (len2 > len1) {
printf("no\n");
return 0;
}
else if (!strcmp(str1, str2)) {
printf("yes\n");
return 0;
}
int kase = 0;
char temp = str2[0];
for (int i = 0; i<len1; ++i) {
if (str2[kase] != str1[i] && temp == str1[i])
ok = false;
if (kase < len2 && str1[i] == str2[kase]) {
temp = str2[kase];
++kase;
}
}
printf(kase == len2 && ok ? "yes\n" : "no\n");
return 0;
}
#include <cstdio>
#include <cctype>
int n, a[100010], tot;
int read() {
int ret, fl = 1;
char ch;
while(!isdigit(ch = getchar()))
(ch == '-') && (fl = -1);
ret = ch - '0';
while(isdigit(ch = getchar()))
ret *= 10, ret += ch - '0';
return ret * fl;
}
void print(int x) {
if(x < 0) putchar('-'), x = -x;
if(x > 9) print(x / 10);
putchar(x % 10 + '0');
}
int abs(int x) {
return x > 0 ? x : -x;
}
int main() {
n = read();
for(int i = 1; i <= n; ++i)
a[i] = read(), tot += abs(a[i] - a[i - 1]);
tot += abs(a[n]);
for(int i = 1; i <= n; ++i) {
int ans;
if(a[i] > a[i - 1]) {
if(a[i + 1] > a[i]) ans = tot;
else {
if(a[i + 1] > a[i - 1]) ans = tot + a[i + 1] * 2 - a[i] * 2;
else ans = tot + a[i - 1] * 2 - a[i] * 2;
}
}
else {
if(a[i + 1] < a[i]) ans = tot;
else {
if(a[i + 1] > a[i - 1]) ans = tot + a[i] * 2 - a[i - 1] * 2;
else ans = tot + a[i] * 2 - a[i + 1] * 2;
}
}
print(ans), putchar('\n');
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
struct Node {
int h, pre;
bool vis;
} nodes[233333];
struct Edge {
int to, nex;
} edges[23333333];
struct Point {
int x, y;
} a[233333];
int n, cnt, ans;
int read() {
int ret, f = 1;
char ch;
while(!isdigit(ch = getchar())) (ch == '-') && (f = -1);
for(ret = ch - '0'; isdigit(ch = getchar()); ret *= 10, ret += ch - '0');
return ret * f;
}
void print(int x) {
if(x < 0) putchar('-'), x = -x;
if(x > 9) print(x / 10);
putchar(x % 10 + '0');
}
void addedge(int u, int v) {
edges[++cnt].to = v;
edges[cnt].nex = nodes[u].h;
nodes[u].h = cnt;
}
bool dfs(int u) {
if(nodes[u].vis) return 0;
nodes[u].vis = 1;
for(int i = nodes[u].h; i; i = edges[i].nex) {
if(!nodes[edges[i].to].pre || dfs(nodes[edges[i].to].pre)) {
nodes[edges[i].to].pre = u;
return 1;
}
}
return 0;
}
int main() {
n = read();
for(int i = 1; i <= n; ++i)
a[i].x = read(), a[i].y = read();
for(int i = 1; i <= n; ++i)
a[n + i].x = read(), a[n + i].y = read();
for(int i = 1; i <= n; ++i)
for(int j = n + 1; j <= n * 2; ++j)
if(a[i].x < a[j].x && a[i].y < a[j].y)
addedge(i, j);
for(int i = 1; i <= n; ++i) {
for(int j = 1; j <= n + cnt; ++j)
nodes[j].vis = 0;
if(dfs(i)) ++ans;
}
print(ans);
return 0;
}
#include<iostream>
#include<string.h>
#include<algorithm>
#include<stdio.h>
#include<math.h>
#include<vector>
#include<map>
#include<set>
#include<time.h>
#define debug(a) cout << "*" << a << "*" << endl
#define ls (k << 1)
#define rs ((k << 1) | 1)
#define mid ((l + r) >> 1)
using namespace std;
typedef long long ll;
ll a[55], m, n;
int main()
{
while (~scanf("%lld", &m))
{
//m = low(1, m, m);
memset(a, 0, sizeof(a));
printf("50\n");
n = m % 50;
m /= 50;
for (int i = 0; i < n; i++) a[i] = 50;
if (m)
for (int i = 0; i < 50; i++) a[i] += (49 - n + m);
for (int i = 0; i < 50; i++) printf("%lld%c", a[i], i == 49 ? '\n' : ' ');
}
}
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<string>
#include<sstream>
#include<algorithm>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<vector>
//#define int long long
using namespace std;
int a[305][305], n, m, k, t, dp[2][90005], x;
signed main()
{
scanf("%d", &t);
while (t--)
{
memset(a, 0, sizeof(a));
memset(dp, 0, sizeof(dp));
scanf("%d%d%d", &n, &m, &k);
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
scanf("%d", &x);
a[i][j] = a[i][j - 1] + x;
}
}
for (int i = 1; i <= n; i++)
{
memset(dp[i & 1], 0, sizeof(dp[i & 1]));
for (int j = 1; j <= m; j++)
{
for (int z = 1; z <= k; z++)
{
dp[i & 1][z] = max(dp[i & 1][z], dp[(i + 1) & 1][z]);
if (z > j)
dp[i & 1][z] = max(dp[i & 1][z], dp[(i + 1) & 1][z - j] + a[i][j]);
else
dp[i & 1][z] = max(dp[i & 1][z], a[i][z]);
}
}
}
printf("%d\n", dp[n & 1][k]);
}
}
#include <cstdio>
#include <cctype>
#include <algorithm>
struct Edge {
int u, v, w;
} edges[100010];
int m, n, top;
int fa[100010];
int sta[100010];
bool fl = 1;
int read() {
int ret, fl = 1;
char ch;
while(!isdigit(ch = getchar())) (ch == '-') && (fl = -1);
for(ret = ch - '0'; isdigit(ch = getchar()); ret *= 10, ret += ch - '0');
return ret * fl;
}
void print(int x) {
if(x < 0) putchar('-'), x = -x;
if(x > 9) print(x / 10);
putchar(x % 10 + '0');
}
bool cmp(Edge a, Edge b) {
return a.w < b.w;
}
int find(int x) {
return x == fa[x] ? x : fa[x] = find(fa[x]);
}
int kru(int del) {
int ret = 0;
for(int i = 1; i <= m; ++i) fa[i] = i;
for(int i = 1; i <= m; ++i) {
if(i == del) continue;
int f1 = find(edges[i].u);
int f2 = find(edges[i].v);
if(f1 == f2) continue;
fa[f1] = f2;
ret += edges[i].w;
if(fl) sta[++top] = i;
}
fl = 0;
return ret;
}
int main() {
n = read(), m = read();
for(int i = 1; i <= m; ++i)
edges[i].u = read(), edges[i].v = read(), edges[i].w = read();
std::sort(edges + 1, edges + m + 1, cmp);
int full = kru(0), ans1 = 0, ans2 = 0;
for(int i = 1; i <= top; ++i)
if(kru(sta[i]) != full)
++ans1, ans2 += edges[sta[i]].w;
print(ans1), putchar(' '), print(ans2), putchar('\n');
return 0;
}
_Wallace_
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
const int N=5e3+5;
string s;
string a[N*5];
int n,k;
bool cmp(const string &x,const string &y){
for(register int i=0;i<(int)min(x.size(),y.size());i++)
{
if(x[i]<y[i]) return true;
if(x[i]>y[i]) return false;
}
return x.size()<y.size();
}
bool operator ==(const string &x,const string &y){
if(x.size()!=y.size()) return false;
for(register int i=0;i<(int)x.size();i++)
if(s[i]!=y[i]) return false;
return true;
}
signed main()
{
cin>>s>>k,n=0;
for(register int i=0;i<(int)s.size();i++)
for(register int j=1;j<=5;j++)
a[++n]=s.substr(i,j);
sort(a+1,a+1+n,cmp);
n=unique(a+1,a+1+n)-a-1;
cout<<a[k]<<endl;
return 0;
}
cpp