Codeforces_101498
A.map统计数量,更新最大值。
#include<bits/stdc++.h>
using namespace std; int n;
map<int,int> mp; int main()
{
ios::sync_with_stdio();
int T;
cin >> T;
while(T--)
{
mp.clear();
cin >> n;
int ans,maxx = ;
for(int i = ;i <= n;i++)
{
string s;
int x;
cin >> s >> x;
mp[x]++;
if(maxx == mp[x]) ans = min(ans,x);
else if(maxx < mp[x])
{
ans = x;
maxx = mp[x];
}
}
cout << ans << endl;
}
return ;
}
B.统计b中每个字符个数,a串线性扫一遍,到没有的字符则停止。
#include<bits/stdc++.h>
using namespace std; char a[],b[];
int cnt[]; int main()
{
ios::sync_with_stdio();
int T;
scanf("%d",&T);
while(T--)
{
scanf("%s%s",a,b);
memset(cnt,,sizeof(cnt));
int len1 = strlen(a),len2 = strlen(b);
for(int i = ;i < len2;i++) cnt[b[i]]++;
int ans = ;
for(int i = ;i < len1;i++)
{
if(!cnt[a[i]]) break;
ans++;
cnt[a[i]]--;
}
printf("%d\n",ans);
}
return ;
}
C.选最小值。
#include<bits/stdc++.h>
using namespace std; int a,b,c; int main()
{
ios::sync_with_stdio();
int T;
cin >> T;
while(T--)
{
cin >> a >> b >> c;
if(a < b && a < c) cout << "First" << endl;
else if(b < a && b < c) cout << "Second" << endl;
else cout << "Third" << endl;
}
return ;
}
D.2*C(a-1,b),预处理阶乘逆元。
#include<bits/stdc++.h>
#define MOD 1000000007
using namespace std; long long a[],fac[],inv[]; long long c(int n,int m)
{
return fac[n]*inv[m]%MOD*inv[n-m]%MOD;
} int main()
{
inv[] = ;
inv[] = ;
for(int i = ;i <= ;i++) inv[i] = inv[MOD%i]*(MOD-MOD/i)%MOD;
for(int i = ;i <= ;i++) inv[i] = inv[i-]*inv[i]%MOD;
fac[] = ;
for(int i = ;i <= ;i++) fac[i] = fac[i-]*i%MOD;
int T;
scanf("%d",&T);
while(T--)
{
long long x,y;
scanf("%lld%lld",&x,&y);
printf("%lld\n",*c(x-,y)%MOD);
}
return ;
}
E.流水线,n+k-1。
#include<bits/stdc++.h>
using namespace std; int main()
{
ios::sync_with_stdio();
int T;
scanf("%d",&T);
while(T--)
{
long long x,y;
scanf("%lld%lld",&x,&y);
printf("%lld\n",x+y-);
}
return ;
}
F.预处理每个数下一个的位置,set储存位置模拟。
#include<bits/stdc++.h>
using namespace std; int n,k,a[],ne[]; int main()
{
ios::sync_with_stdio();
int T;
cin >> T;
while(T--)
{
cin >> n >> k;
for(int i = ;i <= n;i++) cin >> a[i];
map<int,int> mp;
set<int> s;
for(int i = n;i >= ;i--)
{
if(mp.count(a[i])) ne[i] = mp[a[i]];
else ne[i] = n+i;
mp[a[i]] = i;
}
int ans = ;
for(int i = ;i <= n;i++)
{
if(s.count(i))
{
s.erase(i);
s.insert(ne[i]);
continue;
}
if(s.size() == k) s.erase(*s.rbegin());
s.insert(ne[i]);
ans++;
}
cout << ans << endl;
}
return ;
}
G.n^2枚举区间,只要sum%lcm则符合要求,lcm过大时,break掉。
#include<bits/stdc++.h>
using namespace std; int n,a[]; long long lcm(long long a,long long b)
{
long long t = __gcd(a,b);
if(1e14/b > a/t) return a/t*b;
return 1e18;
} int main()
{
ios::sync_with_stdio();
int T;
cin >> T;
while(T--)
{
cin >> n;
for(int i = ;i <= n;i++) cin >> a[i];
int ans = ;
for(int i = ;i <= n;i++)
{
long long t = ,sum = ;
for(int j = i;j <= n;j++)
{
sum += a[j];
t = lcm(t,a[j]);
if(t > 1e14) break;
if(sum%t == ) ans++;
}
}
cout << ans << endl;
}
return ;
}
H.贪心,注意几种特例。
#include<bits/stdc++.h>
using namespace std; int n,k;
char ans[]; int main()
{
ios::sync_with_stdio();
int T;
cin >> T;
while(T--)
{
cin >> n >> k;
ans[n] = ;
if(n% == && k% == || *n < k || n > && k < )
{
cout << - << endl;
continue;
}
for(int i = ,j = n-;i < j;i++,j--)
{
if(k >= )
{
k -= ;
ans[i] = '';
ans[j] = '';
}
else
{
int t = k/;
k -= *t;
ans[i] = t+'';
ans[j] = t+'';
}
}
if(n%) ans[n/] = k+'';
cout << ans << endl; }
return ;
}
I.n,m均为偶数,先手必输。
#include<bits/stdc++.h>
using namespace std; int n,m; int main()
{
ios::sync_with_stdio();
int T;
cin >> T;
while(T--)
{
cin >> n >> m;
if(n % == && m% == ) cout << "abdullah" << endl;
else cout << "hasan" << endl;
}
return ;
}
J.从大到小枚举长度每一约数,当前约数不成立则把这个约数的所有因子标记不成立。
#include<bits/stdc++.h>
using namespace std; char a[];
int vis[]; int main()
{
ios::sync_with_stdio();
int T;
scanf("%d",&T);
getchar();
while(T--)
{
gets(a+);
int n = strlen(a+);
n++;
a[n] = ' ';
memset(vis,,sizeof(vis));
int flag = ;
for(int i = n/;i >= ;i--)
{
if(vis[i]) continue;
if(n%i) continue;
int ok = ;
for(int j = i;j <= n;j += i)
{
if(a[j] != ' ') ok = ;
}
if(ok == )
{
for(int t = ;t*t <= i;t++)
{
if(i%t == )
{
vis[t] = ;
vis[i/t] = ;
}
}
}
else
{
flag = ;
break;
}
}
if(flag) printf("YES\n");
else printf("NO\n");
}
return ;
}
Codeforces_101498的更多相关文章
随机推荐
- PostgreSQL基础操作
1. 查看版本信息 1.1 查看客户端版本信息 黑窗口中输入:psql --version(有两条横线) 没有配置全局的环境变量时,就只能在PostgreSQL安装目录的bin目录中打开黑窗口执行该命 ...
- 【转】Beyond compare4密钥
转:https://blog.csdn.net/lemontree1945/article/details/92963423 w4G-in5u3SH75RoB3VZIX8htiZgw4ELilwvPc ...
- 【Java基础总结】IO流
字节流 1. InputStream 字节输入流 代码演示 InputStream in = System.in; System.out.println("int read(byte b) ...
- 初识Activiti工作流
一.背景介绍 公司最近接了一个监狱AB门系统的项目,在对项目进行调研时,发现客户的关注点主要是在AB门流程这块,项目大部分功能都是审批流程和单据流动状态等.而之前公司的项目关于流程主要都是在表中设置状 ...
- Prometheus+Alertmanager+Grafana监控组件容器部署
直接上部署配置文件 docker-compose.yml version: '3' networks: monitor: driver: bridge services: prometheus: im ...
- python基础操作以及变量运用
今天学习关于pycharm的操作以及变量的知识 1.关于pycharm的基本操作,作为一个小白,仪式感还是要有 在基础界面上新建然后打印hello world,也是对python的一种尊重吧 2.关于 ...
- 一键部署k8s 、docker 工具集——最新版本
- ElasticSearch安装中文分词器IKAnalyzer
# ElasticSearch安装中文分词器IKAnalyzer 本篇主要讲解如何在ElasticSearch中安装中文分词器IKAnalyzer,拆分的每个词都是我们熟知的词语,从而建立词汇与文档 ...
- Babel+vscode实现APICloud开发中兼容ES6及以上代码
本文出自APICloud官方论坛, 感谢论坛版主 penghuoyan 的分享. 使用APICloud开发时,考虑到兼容问题一直使用ES5开发,时间越久感觉越落后,整理了一个兼容ES6的开发环境, ...
- Git创建远程分支并提交代码到远程分支
1.可以在VS中新建分支 2.可以通过git branch -r 命令查看远端库的分支情况 这些红色都是远程的分支 3.从已有的分支创建新的分支(如从master分支),创建一个dev分支 (不用vs ...