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 ...
随机推荐
- 可以用WebRTC来做视频直播吗?
https://www.zhihu.com/question/25497090 作者:韦易笑链接:https://www.zhihu.com/question/25497090/answer/72 ...
- 2019.01.23 hdu3377 Plan(轮廓线dp)
传送门 题意简述:给一个n*m的带权矩阵,求从左上角走到右下角的最大分数,每个格子只能经过最多一次,n,m≤9n,m\le9n,m≤9. 思路: 考虑轮廓线dpdpdp,但这道题并没有出现回路的限制因 ...
- 2019.01.19 codeforces896C.Willem, Chtholly and Seniorious(ODT)
传送门 ODTODTODT出处(万恶之源) 题目简述: 区间赋值 区间加 区间所有数k次方和 区间第k小 思路:直接上ODTODTODT. 不会的点这里 代码: #include<bits/st ...
- vue-cli项目中使用rem
1.安装px2rem插件 npm install px2rem-loader lib-flexible --save 2.在main.js中引入lib-flexible import 'lib-fle ...
- CodeForces 916A Jamie and Alarm Snooze (水题)
题意:给定一个数字n,和一个时间,问你每次可以把当前时间往回调n分钟,然后调多少次后时间中包含数字7. 析:直接模拟就好,从当前分钟向后调,注意调成负数的情况就好.很简单. 代码如下: #pragma ...
- Linux top命令总结
一:在bash里输入top后出现的数据当中目前自己容易理解的有 1.task:中的 num total表示总共有num个进程:num running是正在运行的进程数:num sleeping是正在休 ...
- ThinkPHP3.2.3:使用模块映射隐藏后台真实访问地址
例如:项目应用目录/Application下模块如下,默认后台模块为Admin 现在需要修改后台模块的访问地址,以防被别有用心的人很容易就猜到,然后各种乱搞... (在公共配置文件/Applicati ...
- PHP移植小记
所需文件: Phpnow 1.5.6 文件夹(D盘): SQL Server2005 x86 安装包(D盘‘安装文件文件夹’): 数据库创建命令: 更改sql server 2005的服务器名称 ...
- 在window平台下,自己DIY编译OpenSSL,Libcurl ,来支持HTTPS传输协议
1 缘起 原来就了解些libcurl,一直没有机会在项目实际使用libcurl. 恰好最近一个云存储的项目,服务器使用openstack 恰好我负责现在的一个云存储SDK c++版本的开发中. 与 ...
- Matlab作图
修改线宽 plot(x,y,'LineWidth',1.5) 在xlabel,ylabel,title中使用latex语言 xlabel('$x$','interpreter','latex') yl ...