因为资格赛1已经通过了,资格赛2随便打打玩。这次题目比上次还简单,FallDream看了两眼觉得太水就不做了,我一个人闲着无聊只好默默做了

A. Новый пароль

题目大意:给出N和K,要求构造一个长为N,出现K种字符,相邻字符不相同的字符串。(2<=K<=N<=100,K<=26)

思路:第i个字符输出i%K+'a'。

#include<cstdio>
int main()
{
int n,k,i;
scanf("%d%d",&n,&k);
for(i=;i<n;++i)putchar('a'+i%k);
}

B. Максимизируй сумму цифр

题目大意:给出N,求不超过N的各位数字和最大的数字。(N<=10^18)

思路:枚举一个非零位减一,后面全部换成9,更新答案。

#include<iostream>
#define ll long long
using namespace std;
int p[];
void ts(ll x){for(int i=;x;++i,x/=)p[i]=x%;}
ll ti(){ll r=;for(int i=;i--;)r=r*+p[i];return r;}
int sum(){int r=;for(int i=;i<;++i)r+=p[i];return r;}
int main()
{
ll x,ans;int i,j,mx;
cin>>x;ts(ans=x);mx=sum();
for(i=;i<;++i)if(p[i])
{
for(--p[i],j=;j<i;++j)p[j]=;
if(sum()>mx)mx=sum(),ans=ti();
}
cout<<ans;
}

C. Онлайн-курсы в БГУ

题目大意:共有N门课程,每门课程学之前必须学一些其他课程,一个人要学K门课程,要求构造一个学的课程最少的方案,按顺序输出,没有方案输出-1。(N<=100000,所有课程学之前必须学的加起来不超过100000个)

思路:先建反图BFS出所有必须学的,然后拓扑排序。

#include<cstdio>
char B[<<],*S=B,C;int X;
inline int read()
{
while((C=*S++)<''||C>'');
for(X=C-'';(C=*S++)>=''&&C<='';)X=(X<<)+(X<<)+C-'';
return X;
}
#define MN 100000
struct edge{int nx,t;}e[MN*+];
int h[MN+],rh[MN+],en,q[MN+],qn,u[MN+],r[MN+];
inline void ins(int*h,int x,int y){e[++en]=(edge){h[x],y};h[x]=en;}
int main()
{
fread(B,,<<,stdin);
int n,i,j,x;
n=read();qn=read();
for(i=;i<=qn;++i)u[q[i]=read()]=;
for(i=;i<=n;++i)for(j=read();j--;)ins(h,x=read(),i),ins(rh,i,x);
for(i=;i<=qn;++i)for(j=rh[q[i]];j;j=e[j].nx)if(!u[e[j].t])u[q[++qn]=e[j].t]=;
for(i=;i<=n;++i)if(u[i])for(j=h[i];j;j=e[j].nx)++r[e[j].t];
for(x=qn,qn=,i=;i<=n;++i)if(u[i]&&!r[i])q[++qn]=i;
for(i=;i<=qn;++i)for(j=h[q[i]];j;j=e[j].nx)if(u[e[j].t]&&!--r[e[j].t])q[++qn]=e[j].t;
if(qn<x)return puts("-1"),;
printf("%d\n",x);
for(i=;i<=x;++i)printf("%d ",q[i]);
}

D. Нарисуй скобки!

题目大意:给你一个长为N的括号序列,要求你把它……画出来……(N<=100)

思路:大模拟()

#include<cstdio>
#define MN 100
#define ML 250
char s[MN+],ans[MN+][ML+];
int main()
{
int n,i,j,p,l,r;
scanf("%d%s",&n,s);
for(i=l=r=;i<n;++i,r=l>r?l:r)l+=s[i]=='['?:-;
for(i=p=;i<n;++i,++p)
{
ans[l][p]=ans[r][p]='+';
for(j=l+;j<r;++j)ans[j][p]='|';
if(s[i]=='[')ans[l][p+]=ans[r][p+]='-';
if(s[i]==']')ans[l][p-]=ans[r][p-]='-';
if(s[i]=='['&&s[i+]=='[')++l,--r;
if(s[i]=='['&&s[i+]==']')p+=;
if(s[i]==']'&&s[i+]==']')--l,++r;
}
for(i=;i<=r;++i,puts(""))for(j=;j<p;++j)putchar(ans[i][j]?ans[i][j]:' ');
}

VK Cup 2017 - Квалификация 2的更多相关文章

  1. VK Cup 2017 - Квалификация 1

    CF上的VK Cup 2017资格赛1,好像很水,因为只有俄文所以语言是最大的障碍--不过之后正式赛貌似就有英文了.(比赛貌似只有开俄文模式才看的到--) 时长1天,不随时间扣分.FallDream ...

  2. Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) 菜鸡只会ABC!

    Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) 全场题解 菜鸡只会A+B+C,呈上题解: A. Bear and ...

  3. Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3)(A.B.C,3道暴力题,C可二分求解)

    A. Is it rated? time limit per test:2 seconds memory limit per test:256 megabytes input:standard inp ...

  4. Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3) A B C D 水 模拟 二分 贪心

    A. Is it rated? time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  5. Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2)(A.思维题,B.思维题)

    A. Vicious Keyboard time limit per test:2 seconds memory limit per test:256 megabytes input:standard ...

  6. VK Cup 2017 - Round 1

    和FallDream组队瞎打一通--B两个人写的都挂了233,最后只剩下FallDream写的A和我写的C,最后我yy了个E靠谱做法结果打挂了,结束之后改了改就A了,难受. AC:AC Rank:18 ...

  7. Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) 题解【ABCDE】

    A. Vicious Keyboard 题意:给你一个字符串,里面只会包含VK,这两种字符,然后你可以改变一个字符,你要求VK这个字串出现的次数最多. 题解:数据范围很小,暴力枚举改变哪个字符,然后c ...

  8. Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) A B C D 暴力 水 二分 几何

    A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  9. Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) E

    Description Bear Limak prepares problems for a programming competition. Of course, it would be unpro ...

随机推荐

  1. mvc架构模式概念

    MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器".MVC应用程序总是由这三个部分组成.Event(事件)导致C ...

  2. 点击tableViewCell,调用打电话的功能

    对于点击tableViewCell,调用打电话的功能,按照一般的方法,使用Appdelegate的OpenUrl的方法,使用前先使用UIAlertView展示,让用户选择是否拨打,但是发现了个简单的方 ...

  3. Python习题(第一课)

    想了想其他的太简单了,还是不放了,剩三题吧. 一.完美立方 编写一个程序,对任给的正整数N (N≤100),寻找所有的四元组(a, b, c, d),使得a^3= b^3 + c^3 + d^3,其中 ...

  4. Django rest framework源码分析(4)----版本

    版本 新建一个工程Myproject和一个app名为api (1)api/models.py from django.db import models class UserInfo(models.Mo ...

  5. H5新特性之webWorker

    众所周知javascript是单线程语言,这就是js开发难度较低的原因了,因为不需要解决多线程的资源共享问题(例如死锁),但是单线程性能并不好,因此多了一个webWorker实现js的多进程来提升js ...

  6. zTree根据json选中节点,并且设置其他节点不可选

    首先,在适配目录树时,使用checkbox形式,配置代码如下: var settingCatalog = { check:{ enable: true }, data:{ simpleData:{ e ...

  7. Mego开发文档 - 复杂保存操作

    复杂保存操作 Mego框架还提供了更强大的数据更新API,以简化开发工作,同时也保证的性能. 指定属性添加数据 本列中指定插入一个数据对象,并且只会插入三列数据,最后两个属性是以表达式的形式插入. u ...

  8. Docker学习笔记 - 在运行中的容器内启动新进程

    docker psdoker top dc1 # 容器情况# 在运行中的容器内启动新进程docker exec [-d] [-i] [-t] 容器名 [command] [args]docker ex ...

  9. 计算机基础,Python基础--变量以及简单的循环

    一.计算机基础 1.CPU 相当于人体的大脑,用于计算处理数据. 2.内存  用于存储数据,CPU从内存调用数据处理计算,运算速度很快. PS:问:既然在内存里的数据CPU运算速度快,为什么计算机不全 ...

  10. 实现Winform端窗体关闭后刷新html网页内容

    一.首先要知道刷新网页的路径: frmPointEasyToBeat fpetBeat = new frmPointEasyToBeat(bookNoteId, userInfo.UserId); f ...