WEEEEEEEEEK17

#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include <algorithm>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 100000
#define N 1000005
ll tmp[200005][2];
map<ll, ll>cr, cl,r,l;
int main()
{
	int n;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> tmp[i][0] >> tmp[i][1];
	}
	string dir;
	cin >> dir;
	for (int i = 0; i < n; i++)
	{
		if (dir[i] == 'L')
		{
			cl[tmp[i][1]]++;
			if (cl[tmp[i][1]] == 1)l[tmp[i][1]] = tmp[i][0];
			else l[tmp[i][1]] = max(l[tmp[i][1]], tmp[i][0]);
		}
		else
		{
			cr[tmp[i][1]]++;
			if (cr[tmp[i][1]] == 1)r[tmp[i][1]] = tmp[i][0];
			else r[tmp[i][1]] = min(r[tmp[i][1]], tmp[i][0]);
		}
	}
	for (int i = 0; i < n; i++)
	{
		if (cr[tmp[i][1]]>0&&cl[tmp[i][1]]>0 && r[tmp[i][1]] < l[tmp[i][1]])
		{
			cout << "Yes"; return 0;
		}
	}
	cout << "No";
	return 0;
}

 

#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include <algorithm>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
int main()
{
	int t, n, a[maxn],dp[maxn];
	cin >> t;
	for (int ii = 0; ii < t; ii++)
	{
		cin >> n;
		for (int i = 1; i <= n; i++)
		{
			cin >> a[i];
			dp[i] = 1;
		}
		
		int maxnum = 1;
		for (int i = 1; i <= n; i++)
		{
			for (int k = 2 * i; k <= n; k += i)
			{
				if (a[k] > a[i])
				{
					dp[k] = max(dp[k], dp[i] + 1);
					maxnum = max(maxnum, dp[k]);
				}
			}
		}
		cout << maxnum<<'\n';

	}

	return 0;
}

 

#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include <algorithm>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005

int n,m;
int a[1005][1005], f[1005][1005];
int main()
{
	cin >> n >> m;
	memset(a, 1, sizeof(a));
	int x, y;
	for (int i = 1; i <= m; i++)
	{
		cin >> x >> y;
		a[x][y] = 0;
	}
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			if (a[i][j])
			{
				f[i][j] = min(min(f[i][j - 1], f[i - 1][j]), f[i - 1][j - 1])+1;
			}
		}
	}
	int ans = 0;
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			ans = max(ans, f[i][j]);
		}
	}
	cout << ans;
	return 0;
}

 

#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include<string>
#include <algorithm>
#include<iomanip>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
int main()
{
	double n, m, k, p;
	double ans, l = 0.000, r = 5.00;
	cin >> n >> m >> k;
	double sum;
	while (l < r)
	{
		sum = 0;
		ans = (l + r) / 2.000;
		double fm = 1 + ans;
		for (int i = 1; i <= k; i++)
		{
			sum += m / fm;
			fm *= (1 + ans);
		}
		if (sum - n > 0.000001)
		{
			l = ans + 0.00000000001;
		}
		else if (n - sum > 0.000001)
		{
			r = ans - 0.00000000001;
		}
		else
		{
			cout <<fixed<<setprecision(8)<<ans; break;
		}
	}
	return 0;
}

 

 

#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include<string>
#include <algorithm>
#include<iomanip>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
bool no = 1;
double a[200005] = { 0 };
int n;
double w;
int dfs(double tot, double now, int i)
{
	if (now > tot)return 0;
	if (now * 2 >= tot && now <= tot)
	{
		no = 0;
		cout << "YES\n";
		return 0;
	}
	else if (i >= n)return 0;
	else
	{
		dfs(tot, now, i + 1);
		dfs(tot, now + a[i], i + 1);
	}
	return 0;
}
int main()
{
	int t;
	cin >> t;
	ll sum, tmp;
	for (int ii = 0; ii < t; ii++)
	{
		no = 1;
		sum = 0;
		cin >> n >> w;
		bool yes = 0;
		for (int i = 0; i < n; i++)
		{
			cin >> a[i];
			if (a[i] <= w)sum += a[i];
		}
		if (sum < w / 2 )cout << "NO\n";
		else cout << "YES\n";
	}
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
int n;
int solve(vector<int>vis, vector<int>num, int i)
{
	int ans, cnt;
	ans = vis[i];
	cnt = 0;
	int l = 1, r = n;
	while (l < r)
	{
		while (l < r && num[l] != i)
		{
			vis[num[l]]--;
			l++;
		}
		while (l < r && num[r] != i)
		{
			vis[num[r]]--;
			r--;
		}
		cnt += min(vis[i], 2);
		vis[i] -= 2;
		l++, r--;
		for (int j = 1; j <= 26; j++)
		{
			ans = max(ans, cnt + vis[j]);
		}
	}
	return ans;
}
int main()
{
	int T;
	cin >> T;
	while (T--)
	{
		cin >> n;
		vector<int>vis(30), num(n+5);
		for (int i = 1; i <= n; i++)
		{
			cin >> num[i];
			vis[num[i]]++;
		}
		int ans = 0;
		for (int i = 1; i <= 26; i++)
		{
			if (vis[i] != 0)
			{
				ans = max(ans, solve(vis, num, i));
			/*	for (int j = 1; j <= 26; j++)
				{
					cout << vis[j] << " ";
				}*/
				//cout << endl;
			}
			
		}
		cout << ans << endl;
	}
	return 0;
}

 

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n, m;
ll qpow(ll a, ll b)
{
	ll ans = 1;
	while (b)
	{
		if (b & 1)
		{
			ans = a * ans;
		}
		a = a * a;
		b >>= 1;
	}
	return ans;
}

int main()
{
	cin >> n >> m;
	if (n == 0&&m!=1)
	{
		cout << qpow(2, m) << endl;
	}
	else if (m == 1)
	{
		if (n == 0)
		{
			cout << 1 << endl;
		}
		else
		{
			cout << 2 << endl;
		}
	}
	else
	{
		cout << qpow(2, m )-1 << endl;
	}
	return 0;
}

#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include<string>
#include <algorithm>
#include<iomanip>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
int main()
{
	string s;
	cin >> s;
	int m;
	cin >> m;
	int l, r,k;
	for (int ii = 0; ii < m; ii++)
	{
		cin >> l >> r>>k;
		l--, r--;
		k %= (r - l + 1);
		char a[20000];
		for (int i = l; i <=r; i++)
		{
			a[i] = s[i];
		}
		//r+1-l
		for (int i = r+1;i<= r+1+r
			-l; i++)
		{
			a[i] = s[i - r - 1+l];//i-(r+1-l)
		}
		for (int i = l; i <= r; i++)
		{
			s[i] = a[i-l+r-k+1];
		}

	}
	cout<<s;
	return 0;
}

 

#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include<string>
#include <algorithm>
#include<iomanip>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
int main()
{
	ll n;
	cin >> n;
	ll sum = 0, Max = 0;
	for (int i = 1; i <= n; i++)
	{
		ll tmp;
		cin >> tmp;
		sum += tmp;
		Max = max(Max, tmp);
	}
	sum -= Max;
	if (sum < Max - 1)cout << "NO" << endl;
	else cout << "YES" << endl;
	return 0;
}

 

 

#include <cstdio>
#include <set>
#include<iostream>
#include<cmath>
#include <queue>
#include <utility>
#include<string>
#include <algorithm>
#include<iomanip>
#include <map>
#include<stack>
using namespace std;
#define mode 1000000007
#define ll long long
#define maxn 1000001
#define N 1000005
int main()
{
	int x, n, op, sum = 0; 
	set<int>num;
	cin >> n;
	for (int ii = 0; ii < n; ii++)
	{
		cin >> op;
		if (op == 1)
		{
			cin >> x;
			num.insert(x);
		}
		else if (op == 2)
		{
			cin >> x;
			auto ed = num.end();
			for (auto it = num.begin(); it != ed; it++)
			{
				num.insert(*it + x);
				num.erase(*it);
			}
			
		}
		else
		{
			auto it = num.begin();
			cout << *it << endl;
			num.erase(*it);

		}
	}
	return 0;
}

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值