CodeFoces Round #443(div.2)
http://codeforces.com/contest/879/
2 seconds
256 megabytes
standard input
standard output
It seems that Borya is seriously sick. He is going visit n doctors to find out the exact diagnosis. Each of the doctors needs the information
about all previous visits, so Borya has to visit them in the prescribed order (i.e. Borya should first visit doctor 1, then doctor 2,
then doctor 3and so on). Borya will get the information about his health from the last doctor.
Doctors have a strange working schedule. The doctor i goes to work on the si-th
day and works every di day.
So, he works on days si, si + di, si + 2di, ....
The doctor's appointment takes quite a long time, so Borya can not see more than one doctor per day. What is the minimum time he needs to visit all doctors?
First line contains an integer n — number of doctors (1 ≤ n ≤ 1000).
Next n lines contain two numbers si and di (1 ≤ si, di ≤ 1000).
Output a single integer — the minimum day at which Borya can visit the last doctor.
3
2 2
1 2
2 2
4
2
10 1
6 5
11
In the first sample case, Borya can visit all doctors on days 2, 3 and 4.
In the second sample case, Borya can visit all doctors on days 10 and 11.
题目很简单,只要求每一行的最小值,且这个最小值满足比上一行的值大即可
#include <iostream>
using namespace std;
const int maxn=1005;
int main()
{
int n;
cin>>n;
int s[maxn],d[maxn];
cin>>s[0]>>d[0];
for(int i=1;i<n;i++)
{
cin>>s[i]>>d[i];
while(s[i]<=s[i-1])
{
s[i]+=d[i];
}
}
cout<<s[n-1]<<endl;
return 0;
}
2 seconds
256 megabytes
standard input
standard output
n people are standing in a line to play table tennis. At first, the first two players in the line play a game. Then the loser goes
to the end of the line, and the winner plays with the next person from the line, and so on. They play until someone wins k games in
a row. This player becomes the winner.
For each of the participants, you know the power to play table tennis, and for all players these values are different. In a game the player with greater power always wins. Determine who will be the winner.
The first line contains two integers: n and k (2 ≤ n ≤ 500, 2 ≤ k ≤ 1012) —
the number of people and the number of wins after which a player leaves, respectively.
The second line contains n integers a1, a2, ..., an (1 ≤ ai ≤ n)
— powers of the player. It's guaranteed that this line contains a valid permutation, i.e. all ai are
distinct.
Output a single integer — power of the winner.
2 2
1 2
2
4 2
3 1 2 4
3
6 2
6 5 3 1 2 4
6
2 10000000000
2 1
2
Games in the second sample:
3 plays with 1. 3 wins. 1 goes
to the end of the line.
3 plays with 2. 3 wins.
He wins twice in a row. He becomes the winner.
题意:
有一个队列的人打乒乓球,首先队列的最前面的两个人开始比赛,输了的人回到队尾,队首的人接着比赛,知道有一个人连续赢了k场比赛为止
思路:
很明显,如果开队列模拟做的话肯定超时,所以要想一些小技巧
开一个值maxnnum,记录当前最强的选手是谁,再用另一个值big,记录他连胜的次数
置队列最开始的人为maxnnum,如果赢了,则big++;输了maxnnum赋值为赢对手,big赋值为1;
#include <iostream>
using namespace std;
typedef long long ll;
const int maxn=510;
int main()
{
ll a[maxn];
ll n,k;
cin>>n>>k;
cin>>a[0];
ll maxnnum=a[0];
ll big=0;
ll flag=0;
for(ll i=1;i<n;i++)
{
cin>>a[i];
if(maxnnum>a[i])
{
big++;
if(big==k)
{
flag=1;
break;
}
}
else
{
big=1;
maxnnum=a[i];
}
}
cout<<maxnnum<<endl;
return 0;
}
2 seconds
256 megabytes
standard input
standard output
Petya learned a new programming language CALPAS. A program in this language always takes one non-negative integer and returns one non-negative integer as well.
In the language, there are only three commands: apply a bitwise operation AND, OR or XOR with a given constant to the current integer. A program can contain an arbitrary sequence of these operations with arbitrary constants from 0 to 1023.
When the program is run, all operations are applied (in the given order) to the argument and in the end the result integer is returned.
Petya wrote a program in this language, but it turned out to be too long. Write a program in CALPAS that does the same thing as the Petya's program, and consists of no more than 5 lines.
Your program should return the same integer as Petya's program for all arguments from 0 to 1023.
The first line contains an integer n (1 ≤ n ≤ 5·105)
— the number of lines.
Next n lines contain commands. A command consists of a character that represents the operation ("&",
"|" or "^" for AND, OR or XOR respectively), and the constant xi 0 ≤ xi ≤ 1023.
Output an integer k (0 ≤ k ≤ 5)
— the length of your program.
Next k lines must contain commands in the same format as in the input.
3
| 3
^ 2
| 1
2
| 3
^ 2
3
& 1
& 3
& 5
1
& 1
3
^ 1
^ 2
^ 3
0
You can read about bitwise operations in https://en.wikipedia.org/wiki/Bitwise_operation.
Second sample:
Let x be an input of the Petya's program. It's output is ((x&1)&3)&5 = x&(1&3&5) = x&1.
So these two programs always give the same outputs.
题意:
给你一串位运算
计算x与这些位运算以后的结果
注意样例中给的答案只是特殊值,还有其他值也是正确的
当时深夜十一点多写的,写到后面就崩掉了,主要是自己位运算的基础功还不过关
今天早上看了大佬的博客,思路看懂了,做法还没深刻理解
给你位运算,让你写操作
对于每一位
^1 取反
&0 清空
|1 赋值
那就搞这三个操作好了
#include <cstdio>
const int N=5e5+5;
char a[N];
int b[N],F[10][2],fh[10][4];
int main()
{
int n;
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
getchar();
scanf("%c %d",&a[i],&b[i]);
}
int x=1;
for(int i=0; i<10; i++)
{
int y=x,z=0;
for(int j=1; j<=n; j++)
{
if(a[j]=='|')
z|=b[j],y|=b[j];
else if(a[j]=='&')
z&=b[j],y&=b[j];
else
z^=b[j],y^=b[j];
}
y>>=i,z>>=i;
F[i][1]=y&1,F[i][0]=z&1;
x<<=1;
}
int f1=0,f2=0,f3=0;
for(int i=0; i<10; i++)
{
if(F[i][1]&&!F[i][0])
fh[i][0]=1;
else if(F[i][1]&&F[i][0])
fh[i][0]=1,fh[i][1]=1;
else if(!F[i][1]&&!F[i][0])
fh[i][0]=0;
else
fh[i][0]=1,fh[i][2]=1;
}
for(int i=9; i>=0; i--)
{
f1=f1*2+fh[i][0];
f2=f2*2+fh[i][1];
f3=f3*2+fh[i][2];
}
printf("3\n& %d\n| %d\n^ %d\n",f1,f2,f3);
return 0;
}
CodeFoces Round #443(div.2)的更多相关文章
- Codeforces Round #581(Div. 2)
Codeforces Round #581(Div. 2) CF 1204 A. BowWow and the Timetable 题解:发现,$4$的幂次的二进制就是一个$1$后面跟偶数个$0$. ...
- Codeforces Round #334(div.2)(新增不用二分代码) B
B. More Cowbell time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- Codeforces Round #342 (Div 2) 解题报告
除夕夜之有生之年CF第一场 下午从奶奶家回到姥姥家,一看还有些时间,先吃点水果陪姥姥姥爷聊了会儿,再一看表,5:20....woc已经开场20分钟了...于是抓紧时间乱搞.. **A. Guest F ...
- Codeforces Round 1153(div. 2)
这场奇差.ABCD四题.179名. 但是E在现场有213个人做出. 描述一下我在35分钟做完D后的心路历程. 首先看到这道E,第一下想到的是把所有的横向和竖向的整列(行)求出相连的个数. 然后想如何能 ...
- codeforces Round #389(Div.2)C Santa Claus and Robot(思维题)
题目链接:http://codeforces.com/contest/752/problem/C 题意:给出一系列机器人的行动方向(机器人会走任意一条最短路径),问最少标记几个点能让机器人按这个 路径 ...
- Codeforces Round #345 (Div 2)
最后两题是orzCJK学长帮忙代打的,不过总算是到蓝名了(上次睡迟了,只剩半个小时,结果作大死点开题目看,结果rating掉了100多),还有论代码风格的重要性!!!(没写空格被学长各种D) A题 题 ...
- Codeforces Round #622(Div 2)C2. Skyscrapers (hard version)
题目链接 : C2. Skyscrapers (hard version) 题目描述 : 与上一道题类似,只是数据范围变大, 5e5, 如果用我们原来的方法,铁定是超时的. 考察点 : 单调栈,贪心, ...
- Codeforces Round #556(Div.1)
A 容易发现i,i+1至少有一个数出现,于是可以让尽量多的2和奇数出现 #include<bits/stdc++.h> using namespace std; int n,s1,s2; ...
- codeforce Round #665(div 2)A B C
A. Distance and Axis 题意:在一个0x轴上,给了a在0x轴上的坐标,要你放一个b点使得abs(0B - AB)的值等于 k,但是有的时候如果不移动A点就不能实现这个条件,所以要你求 ...
随机推荐
- python执行
转载:https://www.cnblogs.com/zflibra/p/4180796.html
- C# Queue与RabbitMQ的爱恨情仇(文末附源码):Q与MQ消息队列简单应用(二)
上一章我们讲了队列( Queue),这一章我们讲Message Queue消息队列,简称MQ. 定义: MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开 ...
- 如何扩展ArcGIS中的元数据编辑器
http://www.esrichina-bj.cn/old../library/arcnews16/Metadata.htm http://www.esrichina-bj.cn/old../lib ...
- redis connetced refused remote
239down vote I've been stuck with the same issue, and the preceding answer did not help me (albeit w ...
- leetCode 78.Subsets (子集) 解题思路和方法
Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset must ...
- Structual设计--Bridge模式
1.意图 将抽象部分与它的实现部分分离.使他们都能够独立地变化. 2.别名 Handle/Body 3.动机 当一个抽象对象可能有多个实现时,通经常使用继承来协调它们.抽象类定义对该抽象的接口.而详细 ...
- springMVC4(16)拦截器解析与登陆拦截模拟
在SpringMVC中,我们会常常使用到拦截器,尽管SpringAOP也能帮我们实现强大的拦截器功能,但在Web资源供给上.却没有SpringMVC来得方便快捷. 使用SpringMVC拦截器的核心应 ...
- iOS开发-UITableView单选多选/复选实现1
TableView怎样实现单选或者多选呢? 我们的直接思路是改动某一个Cell的样式就可以, 那么改动样式须要通过改动相应的数据, 从这里能够判断我们须要给Cell相应的数据设置一个标志位, 当选中的 ...
- VUEX action解除页面耦合
最近项目中需要用到vue+vuex来实现登出跳转功能,老大指派任务要用action解除页面耦合,刚从vue深渊晕晕乎乎爬出来的我是一脸懵逼啊...啥是解除耦合...网上vuex的资料太少了,vuex手 ...
- 初探swift语言的学习笔记十一(performSelector)
作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/35842441 转载请注明出处 假设认为文章对你有所帮助,请通过留言 ...