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的更多相关文章

随机推荐

  1. spring cloud微服务快速教程之(六) 应用监控 spring boot admin

    0-前言 当我们发布了微服务后,我们希望对各个应用的各个运行状况进行一个监控:这个时候spring boot admin,就出场了: spring boot admin:是一个监控和管理spring ...

  2. 高德API对接

    <?php class GaoDeAPI { private $key = '123456789'; # 你应用key /** * 地址转经纬度 */ public function getTr ...

  3. 6.7 Mapreduce作业流JobControl和Oozie

    1.1  Mapreduce作业流JobControl和Oozie 更复杂的任务,需要多个mapreduce作业,形成作业流,而不是增加map和reduce的复杂度.复杂问题,可以用高级语言pig.h ...

  4. Ant Design中getFieldDecorator方法的特殊用法(小bug)

    记录Ant Design中getFieldDecorator方法的特殊的一个用法 了解Ant Design表单的小伙伴都知道,getFieldDecorator在大部分情况下是用来绑定一个控件的,即像 ...

  5. schedule of 2016-10-24~2016-10-30(Monday~Sunday)——1st semester of 2nd Grade

    2016/10/24 Monday forcus:find a way to try to recognize emotions in database2.0(see ppt Week 7) 1.pr ...

  6. 【转】在MyEclipse 8.6上搭建Android开发环境

    内容导航 第 1 页:基本环境准备 第 2 页:下载Android SDK 第 3 页:配置SDK环境变量 第 4 页:给MyEclipse安装ADT插件 第 5 页:配置MyEclipse 第 6 ...

  7. Spring Boot从零入门3_创建Hello World及项目剖析

    目录 1 前言 2 名词术语 3 创建Hello World项目 3.1 基于STS4创建项目 3.2 使用Spring Initializr Website创建项目并导入 3.3 基于Spring ...

  8. MySQL查询基础

    MySQL查询 DQL(Data Query Language ) 1.排序查询 # 语法: select 字段 from 表名 order by 字段1 [降序/升序],字段2 [降序/升序],.. ...

  9. Java入门 - 高级教程 - 06.邮件收发

    原文地址:http://www.work100.net/training/java-email.html 更多教程:光束云 - 免费课程 邮件收发 序号 文内章节 视频 1 概述 2 发送一封简单的邮 ...

  10. 异数OS-星星之火(二)--远程实验室注册开放

    异数OS-星星之火(二) 远程实验室注册开放 异数os-织梦师云 未来操作系统技术远程实验室预计9月中旬开放,提供异数os用户学习研究测试服务,目前在做容器化多租户环境改造,先开放会员预注册通道,有需 ...