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的更多相关文章
随机推荐
- 机器学习回顾篇(14):主成分分析法(PCA)
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- Redis内存碎片清理
当Redis中清理了大量的Key之后原先Redis申请的内存(used_memory_rss)将继续持有而不会释放,此时查看内存信息将会看到存在大量的内存碎片.那么,Redis的内存碎片可以清理么,该 ...
- SharePoint REST 上传文件请求403错误
最近,需要在SharePoint上传文件到文档库,但是,上传的过程报错了. 错误代码 { "error": { "code": "-213057525 ...
- Nginx作为静态web服务器——缓存原理
浏览器缓存 客户端无缓存的情况下 客户端有缓存的情况下 校验过期机制 本地客户端会检查Cache-Control(max-age)缓存是否过期,(max-age)为过期时间 Last- ...
- crawler 听课笔记 碎碎念 1 初步了解各种选择器极其简单的使用
css中 身份证 id对应# 衣服 class对应 . 图片 pyquery...as pq html= request.get(url=''.....'') doc=pq(html) d ...
- get_字段_display()
gender_choices = ((1, '男'), (2, '女')) gender = models.IntegerField(verbose_name='性别', choices=gender ...
- Oracle GoldenGate for BigData-Kafka
0. Env list:Oracle Linux:6.10Oracle DB 11.2.0.4OGG4Ora:19.1OGG4BD:19.1 1.Install package for OCI ins ...
- 从0开发3D引擎:目录
介绍 大家好,本系列带你踏上Web 3D编程之旅- 本系列是实战类型,从0开始带领读者写出"良好架构.良好扩展性.优秀的性能.最小功能集合(MVP)" 的3D引擎. 本系列的素材来 ...
- Java对接微信公众号模板消息推送
内容有点多,请耐心! 最近公司的有这个业务需求,又很凑巧让我来完成: 首先想要对接,先要一个公众号,再就是开发文档了:https://developers.weixin.qq.com/doc/offi ...
- ubuntu系统下载后的.deb软件安装命令
查看某个软件是否安装,比如查看QQ软件是否安装并列出软件包名: dpkg -l | grep qq 删除某款软件:sudo dpkg -r 软件包名 安装软件 : sudo dpkg -i *.deb