Codeforces Round #479 (Div. 3)解题报告
题目链接: http://codeforces.com/contest/977
A. Wrong Subtraction
题意
给定一个数x,求n次操作输出。操作规则:10的倍数则除10,否则减1
直接写,手速题,没啥好说的
B. Two-gram
题意
求出现次数最多的连续两个字符
还是签到题,我居然很麻烦地用了map,= =算了,思路畅通都无所谓了
#include <iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<string>
#include<map>
using namespace std;
int main()
{
char a[],s[],ss[];
int n;
while(cin>>n)
{
cin>>a;
map<string,int>mp;
int MAX=-;
for(int i=;i<strlen(a)-;i++)
{
s[]=a[i]; s[]=a[i+];
mp[s]++;
//cout<<s<<endl;
if(mp[s]>MAX) MAX=mp[s],ss[]=a[i],ss[]=a[i+];
}
cout<<ss[]<<ss[]<<endl;
}
return ;
}
C. Less or Equal
题意
给一串数组,是否找到一个数x,找到k个数字<=x,找到输出x,不能输出-1。
第二组,要找到两个数字,排序后出现1,3,3,会出现三个数字小于等于3,所以不能找到。
注意下k==0的时候就好了,没啥好说的
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <map>
#define ll long long
using namespace std;
const int maxn=2e5+;
int a[maxn];
int main()
{
int m,k;
while(cin>>m>>k)
{
for(int i=;i<m;i++)
cin>>a[i];
sort(a,a+m);
if(k==)
{
if(a[]==) puts("-1");
else cout<<a[]-<<endl;
}
else if(k==m) cout<<a[k-]<<endl;
else
{
if(a[k-]==a[k]) puts("-1");
else cout<<a[k-]<<endl;
}
}
return ;
}
D. Divide by three, multiply by two
题意
直接看样例吧 4 8 6 3 12 9 把这个序列排成一个这样的序列, 前一位是后一位数的一半或者3倍,所以排序后是这样 9 3 6 12 4 8
dfs或者直接双重for循环都可以,不过赛后看到个数学思路的题解,觉得很有灵性= =
直接按对3有更多约数的多少来排(前一位是后一位的3倍),有相同个则从小到大(也就是前一位是后一位数的一半)
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <map>
#define ll long long
using namespace std;
const int maxm=2e5+;
const int maxn=1e5+; ll a[];
ll s(ll num)
{
ll cnt=;
while(num%==)
{
cnt++;
num/=;
}
return cnt;
}
bool cmp(ll x,ll y)
{
if(s(x)!=s(y))
return s(x)>s(y);
else return x<y;
}
int main()
{
int n;
while(cin>>n)
{
for(int i=;i<n;i++)
cin>>a[i];
sort(a,a+n,cmp);
for(int i=;i<n;i++)
printf("%lld%c",a[i],i==n-?'\n':' ');
}
}
E. Cyclic Components
题意
给定点的个数和各条边,问有多少个环
既然是环,一个点就会对应两次啊,直接并查集啊,巴拉巴拉,水水水就过去了
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <map>
#define ll long long
using namespace std;
const int maxn=2e5+;
int pre[maxn],edg[maxn],cnt;
struct node
{
int u,v;
}a[maxn];
void iint()
{
for(int i=;i<maxn;i++) pre[i]=i;
}
int ffind(int x)
{
if(x==pre[x]) return x;
return pre[x]=ffind(pre[x]);
}
void join(int x,int y)
{
x=ffind(x),y=ffind(y);
if(x!=y) pre[x]=y;
else cnt++;
}
int main()
{
int m,n;
while(cin>>m>>n)
{
iint();
memset(edg,,sizeof(edg));
for(int i=;i<n;i++)
{
cin>>a[i].u>>a[i].v;
edg[a[i].u]++;
edg[a[i].v]++;
}
cnt=;
for(int i=;i<m;i++)
{
if(edg[a[i].u]==&&edg[a[i].v]==)
join(a[i].u,a[i].v);
}
cout<<cnt<<endl;
}
return ;
}
F. Consecutive Subsequence
题意
给你一个数组找出最长的递增子序列的长度以及下标位置。
例如: 第一组样例 3 3 4 7 5 6 8
最长的子序列为3 4 5 6,长度为4。
下标为1 3 5 6或2 3 5 6
觉得dp才是正解,贴个别人的http://www.bubuko.com/infodetail-2595514.html
可是比赛时候不知道为什么被我map玄学给过了2333
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <map>
#define ll long long
using namespace std;
const int maxn=2e5+;
int a[maxn];
int main()
{
ios::sync_with_stdio(false);
int n,tmp;
while(cin>>n)
{
map<int,int>mp;
int max_pos=-,Max=-;
for(int i=;i<=n;i++)
{
cin>>a[i];
mp[a[i]]=mp[a[i]-]+;
if(mp[a[i]]>Max) Max=mp[a[i]],tmp=a[i],max_pos=i;
}
int u=tmp-Max+;
cout<<Max<<endl;
bool f=true;
for(int i=;i<=max_pos;i++)
{
if(a[i]==u)
{
if(f) cout<<i,f=false;
else cout<<" "<<i;
u++;
}
}
cout<<endl;
}
return ;
}
Codeforces Round #479 (Div. 3)解题报告的更多相关文章
- Codeforces Round #324 (Div. 2)解题报告
---恢复内容开始--- Codeforces Round #324 (Div. 2) Problem A 题目大意:给二个数n.t,求一个n位数能够被t整除,存在多组解时输出任意一组,不存在时输出“ ...
- Codeforces Round #382 (Div. 2) 解题报告
CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...
- Codeforces Round #274 (Div. 2) 解题报告
题目地址:http://codeforces.com/contest/479 这次自己又仅仅能做出4道题来. A题:Expression 水题. 枚举六种情况求最大值就可以. 代码例如以下: #inc ...
- Codeforces Round #380 (Div. 2) 解题报告
第一次全程参加的CF比赛(虽然过了D题之后就开始干别的去了),人生第一次codeforces上分--(或许之前的比赛如果都参加全程也不会那么惨吧),终于回到了specialist的行列,感动~.虽然最 ...
- Codeforces Round #216 (Div. 2)解题报告
又范低级错误! 只做了两题!一道还被HACK了,囧! A:看了很久!应该是到语文题: 代码:#include<iostream> #include<]; ,m2=; ;i ...
- Codeforces Round #281 (Div. 2) 解题报告
题目地址:http://codeforces.com/contest/493 A题 写完后就交了,然后WA了,又读了一遍题,没找出错误后就开始搞B题了,后来回头重做的时候才发现,球员被红牌罚下场后还可 ...
- Codeforces Round #277 (Div. 2) 解题报告
题目地址:http://codeforces.com/contest/486 A题.Calculating Function 奇偶性判断,简单推导公式. #include<cstdio> ...
- Codeforces Round #276 (Div. 2) 解题报告
题目地址:http://codeforces.com/contest/485 A题.Factory 模拟.判断是否出现循环,如果出现,肯定不可能. 代码: #include<cstdio> ...
- Codeforces Round #350 (Div. 2)解题报告
codeforces 670A. Holidays 题目链接: http://codeforces.com/contest/670/problem/A 题意: A. Holidays On the p ...
随机推荐
- 【C#】解析C#程序集的加载和反射
目录结构: contents structure [+] 程序集 程序集的加载 发现程序集中的类型 反射对类型成员的常规操作 发现类型的成员 创建类型的实例 绑定句柄减少进程的内存消耗 解析自定义特性 ...
- CRC在线计算工具
http://www.lammertbies.nl/comm/info/crc-calculation.html
- 64位ubuntu 兼容32位
http://www.cnblogs.com/mliudong/p/4086797.html 首先要打开64位系统对32位的支持 第一步:确认64为架构的内核 dpkg --print-archite ...
- 54.NSJSONSerialization类进行json解析(字符串“UTF-8解码”)
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllo ...
- 如何将mysql卸载干净
一.在控制面板中卸载mysql软件 二.卸载过后删除C:\Program Files (x86)\MySQL该目录下剩余了所有文件,把mysql文件夹也删了 三.windows+R运行“regedit ...
- hdu-1255(线段树求面积并)模板
题目链接:传送门 思路: (1)建立线段的信息,每个线段存储l到r的线段的x位置和y的起始点与终点. 建立线段树的节点信息,每个节点代表一个区间的信息,x表示区间的横坐标的位置,l,r表示纵坐标的范围 ...
- BZOJ 2120 数颜色 (带修莫队)
2120: 数颜色 Time Limit: 6 Sec Memory Limit: 259 MBSubmit: 6367 Solved: 2537[Submit][Status][Discuss] ...
- mac环境下配置nginx
1.建议使用homebrew安装(ruby安装 brew install ruby) ruby -e "$(curl -fsSL https://raw.githubusercont ...
- 【Javascript第二重境界】序
JS是个人比较喜欢的一门语言,在前端开发中也处于核心位置.前面断断续续的研究了一段时间,这其中包括 对象,原型,继承,函数,设计模式,模块,DOM操作,以及其它又多又琐碎的知识点,而且大部分内容都没有 ...
- 各种学习Demo链接
CSS3: 钟表:http://demo.qpdiy.com/hxw/CSS3/css3_clock.html CSS3各种旋转:http://demo.qpdiy.com/hxw/CSS3/css3 ...