公平分队

#pragma comment(linker, "/STACK:102400000,102400000")
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
#include<algorithm>
#include<iostream>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<functional>
//#include<bits/stdc++.h>
using namespace std;
typedef long long lint;
typedef vector<int> VI;
typedef pair<int, int> PII; int cmp(const void * x, const void * y) {
#define datatype int
datatype dx = *((datatype *)(x)), dy = *((datatype *)(y));
//x < y
return dx < dy ? - : ;
#undef datatype
} int a[]; int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
std::ios::sync_with_stdio(), cin.tie();
int n;
cin >> n;
for (int i = ; i < * n; i++) cin >> a[i];
sort(a, a + * n);
lint ans = ;
for (int i = ; i < n; i++) ans += a[i];
ans += a[ * n - ];
cout << ans << endl;
return ;
}

XY游戏

#pragma comment(linker, "/STACK:102400000,102400000")
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
#include<algorithm>
#include<iostream>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<functional>
//#include<bits/stdc++.h>
using namespace std;
typedef long long lint;
typedef vector<int> VI;
typedef pair<int, int> PII; int cmp(const void * x, const void * y) {
#define datatype int
datatype dx = *((datatype *)(x)), dy = *((datatype *)(y));
//x < y
return dx < dy ? - : ;
#undef datatype
} map<int, int> mp;
struct state {
int a[][];
int step;
};
queue<state> q;
int hash_state(state st) {
int rtn = ;
for (int i = ; i < ; i++) {
for (int j = ; j < ; j++)
rtn = rtn * + st.a[i][j];
}
return rtn;
}
const int dx[] = {-, , , };
const int dy[] = {, , , -};
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
std::ios::sync_with_stdio(), cin.tie();
state initial, st, stt;
char ch;
for (int i = ; i < ; i++) {
for (int j = ; j < ; j++) {
cin >> ch;
while (ch != 'O' && ch != 'X' && ch != 'Y') cin >> ch;
if (ch == 'O') initial.a[i][j] = ;
else if (ch == 'X') initial.a[i][j] = ;
else initial.a[i][j] = ;
}
}
initial.step = ;
q.push(initial);
mp[hash_state(initial)]++;
while (!q.empty()) {
st = q.front();
q.pop();
bool ok = false;
for (int i = ; i < ; i++) {
if (st.a[i][] == && st.a[i][] == && st.a[i][] == && st.a[i][] == ) ok = true;
if (st.a[i][] == && st.a[i][] == && st.a[i][] == && st.a[i][] == ) ok = true;
if (st.a[][i] == && st.a[][i] == && st.a[][i] == && st.a[][i] == ) ok = true;
if (st.a[][i] == && st.a[][i] == && st.a[][i] == && st.a[][i] == ) ok = true;
if (st.a[][] == && st.a[][] == && st.a[][] == && st.a[][] == ) ok = true;
if (st.a[][] == && st.a[][] == && st.a[][] == && st.a[][] == ) ok = true;
if (st.a[][] == && st.a[][] == && st.a[][] == && st.a[][] == ) ok = true;
if (st.a[][] == && st.a[][] == && st.a[][] == && st.a[][] == ) ok = true;
}
if (ok) {
cout << st.step << endl;
return ;
}
stt = st;
stt.step = st.step + ;
for (int i = ; i < ; i++) {
for (int j = ; j < ; j++) {
if (st.a[i][j] == ) continue;
for (int k = ; k < ; k++) {
if ( <= i + dx[k] && i + dx[k] < && <= j + dy[k] && j + dy[k] < && st.a[i + dx[k]][j + dy[k]] == ) {
stt.a[i + dx[k]][j + dy[k]] = stt.a[i][j];
stt.a[i][j] = ;
int h = hash_state(stt);
if (mp.find(h) == mp.end()) {
mp[h]++;
q.push(stt);
}
stt.a[i][j] = stt.a[i + dx[k]][j + dy[k]];
stt.a[i + dx[k]][j + dy[k]] = ;
}
}
}
}
}
cout << - << endl;
return ;
}

第K小最简真分数

#pragma comment(linker, "/STACK:102400000,102400000")
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
#include<algorithm>
#include<iostream>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<functional>
//#include<bits/stdc++.h>
using namespace std;
typedef long long lint;
typedef vector<int> VI;
typedef pair<int, int> PII; int cmp(const void * x, const void * y) {
#define datatype int
datatype dx = *((datatype *)(x)), dy = *((datatype *)(y));
//x < y
return dx < dy ? - : ;
#undef datatype
}
lint p[];
int m = ;
lint calc(lint x) {
lint rtn = x;
for (int i = ; i < ( << m); i++) {
int cnt = , mlt = ;
for (int j = ; j < m; j++) {
if (i & ( << j)) {
cnt++;
mlt *= p[j];
}
}
if (cnt & ) rtn -= x / mlt;
else rtn += x / mlt;
}
return rtn;
}
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
std::ios::sync_with_stdio(), cin.tie();
lint n, k;
cin >> n >> k;
lint l = , r = n;
for (int i = ; i * i <= n; i++) {
if (n % i == ) {
p[m++] = i;
while (n % i == ) n /= i;
}
}
if (n != ) p[m++] = n;
while (l < r) {
lint mid = (l + r) >> ;
lint fk = calc(mid);
if (fk < k) l = mid + ;
else r = mid;
}
cout << r << endl;
return ;
}

前缀后缀查询

#include <bits/stdc++.h>

using namespace std;
#define pii pair<int,int>
#define vi vector<int>
#define pb push_back
#define mp make_pair
#define x first
#define y second
#define SZ(x) x.size()
#define all(x) x.begin(),x.end()
#define rep(i,a,b) for(int i=a;i<b;i++)
#define per(i,a,b) for(int i=b-1;i>=a;i--)
#define DBG(x) cerr<<(#x)<<"="<<x<<"\n";
#define inf 1000000007
#define mod 1000000007
#define ll long long
#define N 100010 template<class T,class U> void Max(T &a,U b){if(a<b)a=b;}
template<class T,class U> void Min(T &a,U b){if(a>b)a=b;}
template<class T,class U> void add(T &a,U b){a+=b;if(a>=mod)a-=mod;} template<class T,class U> int min(T a,U b){return a>=b?b:a;} int a[],b[],sz;
char s[];
int ch[][];
void add(char s[],int a[]){
int n=strlen(s),p=;
rep(i,,n){
int j=s[i]-'a';
if(!ch[p][j])ch[p][j]=++sz;
p=ch[p][j];
a[i+]=p;
}
}
int find(string s){
int p=;
rep(i,,SZ(s)){
int j=s[i]-'a';
if(!ch[p][j])return -;
p=ch[p][j];
}
return p;
}
int main(){
int i,j,k,ca=,T,n,m,K;
scanf("%d%d",&n,&K);
unordered_map<ll,int>g;
int w;sz=;
rep(i,,n){
scanf("%s%d",s,&w);
m=strlen(s);
add(s,a);
reverse(s,s+m);
add(s,b);
rep(j,,m+){
rep(k,,m+){
ll x=a[j]*1000007LL+b[k];
if(!g.count(x))g[x]=w;
else if(w>g[x])g[x]=w;
}
}
}
string s,t;
while(K--){
cin>>s>>t;
reverse(all(t));
int ans=-;
int x=find(s),y=find(t);
if(x!=-&&y!=-){
ll w=x*1000007LL+y;
if(g.count(w))ans=g[w];
}
printf("%d\n",ans);
}
}

最新文章

  1. 【原】彻底解决WPS弹出热点广告、WPS购物图标的办法
  2. IE8下String的Trim()方法失效的解决方案
  3. 点/边 双连通分量---Tarjan算法
  4. C#颜色 转换
  5. vb.net中常用键值
  6. sql中视图视图的作用
  7. RequireJs 深入理解
  8. fafu 1568 Matrix(二分匹配+二分)
  9. sql和shell注入测试
  10. 安装、设置与启动MySql绿色版的方法
  11. leetcode第12题--Integer to Roman
  12. ie8兼容圆角
  13. leetcode — valid-palindrome
  14. Python Pandas 简单使用之 API熟悉
  15. 【译】深度双向Transformer预训练【BERT第一作者分享】
  16. Linux之系统优化
  17. MvcPager帮助文档 — PagerOptions 类
  18. php 操作json的各种格式
  19. Unity3D_UGUI判断鼠标或者手指是否点击在UI上
  20. live555 交叉编译移植到海思开发板

热门文章

  1. jquery-pjax
  2. (转)基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用
  3. 团体程序设计天梯赛-练习集-L1-046. 整除光棍
  4. Redis好在哪?
  5. Android 性能测试初探(五)
  6. 洛谷 P2046 BZOJ 2007 海拔(NOI2010)
  7. 于工具类中@Autowired注入为NULL的问题记录
  8. [MSSQL]採用pivot函数实现动态行转列
  9. hive正則表達式
  10. Spring JDBC数据库开发