Codeforces #377 Div2
打得还不错的一场CF,题目质量也很高,今后还要继续努力
A题:
题意:给定一个数k,让其乘一个最小的数,使乘得以后的数要不被10整除,要不减去r以后被10整除,求这个最小的数
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <bitset>
#include <cmath>
#include <queue>
#include <stack>
using namespace std;
int r,k;
int main()
{
while(cin>>r>>k)
{
int pos;
for(int i=;i<=;i++){
int t=i*r;
if((t%==)||((t-k)%==))
{
pos=i; break;
}
}
cout<<pos<<endl;
}
return ;
}
B题:
题意:给定n个数和一个数k,求最少修改使任意相邻的两个数的和大于等于k
分析:对于任意两个数和大于等于k的不做修改,对于小于k的,修改后一个数即可,使其加上k-(二者的和)
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <bitset>
#include <cmath>
#include <queue>
#include <stack>
using namespace std;
const int maxn=;
int a[maxn],b[maxn];
int n,k;
int main()
{
while(cin>>n>>k)
{
memset(a,,sizeof(a));
memset(b,,sizeof(b));
for(int i=;i<=n;i++)
cin>>a[i];
int cnt=;
for(int i=;i<=n-;i++){
if(a[i]+a[i+]>=k){
b[i]=a[i];
}else{
b[i]=a[i];
int t=k-a[i]-a[i+];
cnt+=t;
a[i+]+=t;
}
}
b[n]=a[n];
cout<<cnt<<endl;
for(int i=;i<=n-;i++)
printf("%d ",b[i]);
printf("%d\n",b[n]);
}
return ;
}
C题:
题意:给定吃的三餐的次数,确定最少有多少餐没吃
分析:如果三餐相等就是0,否则就是根据最多的那一餐来决定
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <bitset>
#include <cmath>
#include <queue>
#include <stack>
using namespace std;
long long MAX(long long a,long long b,long long c)
{
long long d=max(a,b);
long long e=max(c,d);
return e;
}
long long b,d,s;
int main()
{
while(cin>>b>>d>>s)
{
long long h=MAX(b,d,s);
long long cnt;
if(b==d&&d==s){
cout<<""<<endl;
continue;
}
if(h==b){
cnt=max((long long),(b--d))+max((b--s),(long long));
}else if(h==d){
cnt=max((long long),(d--b))+max((long long),(d--s));
}else{
cnt=max((long long),(s--b))+max((long long),(s--d));
}
cout<<cnt<<endl;
}
return ;
}
D题:
暂时还没做
E题:
题意:有n台电脑,和m个插座,如果二者的power相等,就可以进行连接,插座可以加适配器,没加一次适配器以后power变为
,求最多可以适配多少台电脑,在此基础上最少需要的适配器数量。同时输出每一个插座的适配器数量,以及每一台电脑和哪个插座适配
分析:我们需要把电脑按照power从大到小进行排序,然后用优先队列来维护插座,如果电力值大于电脑,变为
,然后在入队,如果等于,直接适配
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <bitset>
#include <cmath>
#include <queue>
#include <stack>
using namespace std;
const int maxn=;
const int INF=<<;
int n,m;
typedef struct T{
int num,id;
}T;
T p[maxn];
int s[maxn]; //电脑和插座需要的power
typedef struct P{
int x,num,id;
friend bool operator<(P a,P b)
{
if(a.x==b.x)
return a.num>b.num;
return a.x<b.x; //大顶堆
}
}P;
typedef struct Point{
int cnt,id;
}Point;
Point vis[maxn];
int vis1[maxn];
bool cmp(T a,T b)
{
return a.num>b.num;
}
int a[maxn];
int b[maxn];
int main()
{
while(cin>>n>>m)
{
priority_queue<P> que;
for(int i=;i<=maxn;i++){
vis[i].cnt=,vis[i].id=;
}
for(int i=;i<=n;i++){
scanf("%d",&p[i].num);
p[i].id=i;
}
for(int i=;i<=m;i++)
{
scanf("%d",&s[i]);
P e;
e.x=s[i];
e.num=;
e.id=i;
que.push(e);
}
memset(vis1,,sizeof(vis1));
sort(p+,p++n,cmp);
for(int i=;i<=n;i++){
int t,q,h;
while(que.top().x>p[i].num&&!que.empty()){
P s=que.top();
que.pop();
t=s.x,q=s.num,h=s.id;
t=(t+)/;
q++;
s.x=t,s.num=q,s.id=h;
que.push(s);
}
if(que.empty()) break;
if(que.top().x==p[i].num){
vis[i].cnt=que.top().num;
vis[i].id=que.top().id;
vis1[i]=;
que.pop();
}else{
continue;
}
}
int c=,u=;
for(int i=;i<=n;i++){
if(vis1[i]){
++c;
u+=vis[i].cnt;
}
}
printf("%d %d\n",c,u);
memset(a,,sizeof(a));
for(int i=;i<=n;i++){
a[vis[i].id]=vis[i].cnt;
}
for(int i=;i<=m;i++){
printf("%d ",a[i]);
}
printf("\n");
memset(b,,sizeof(b));
for(int i=;i<=n;i++){
b[p[i].id]=vis[i].id;
}
for(int i=;i<=n;i++)
printf("%d ",b[i]);
cout<<endl;
}
return ;
}
Codeforces #377 Div2的更多相关文章
- Codeforces #180 div2 C Parity Game
// Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...
- Codeforces #541 (Div2) - E. String Multiplication(动态规划)
Problem Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...
- Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)
Problem Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...
- Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)
Problem Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...
- Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)
Problem Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...
- 【Codeforces #312 div2 A】Lala Land and Apple Trees
# [Codeforces #312 div2 A]Lala Land and Apple Trees 首先,此题的大意是在一条坐标轴上,有\(n\)个点,每个点的权值为\(a_{i}\),第一次从原 ...
- Codeforces #263 div2 解题报告
比赛链接:http://codeforces.com/contest/462 这次比赛的时候,刚刚注冊的时候非常想好好的做一下,可是网上喝了个小酒之后.也就迷迷糊糊地看了题目,做了几题.一觉醒来发现r ...
- codeforces #round363 div2.C-Vacations (DP)
题目链接:http://codeforces.com/contest/699/problem/C dp[i][j]表示第i天做事情j所得到最小的假期,j=0,1,2. #include<bits ...
- codeforces round367 div2.C (DP)
题目链接:http://codeforces.com/contest/706/problem/C #include<bits/stdc++.h> using namespace std; ...
随机推荐
- PHP之Zip扩展,解压缩文件,ZipArchive类
<?php $zip = new ZipArchive();//新建一个对象 /* $zip->open这个方法第一个参数表示处理的zip文件名. 第二个参数表示处理模式,ZipArchi ...
- C# List<T> To DataTable
public DataTable ConvertToDataTable<T>(IList<T> data) { PropertyDescriptorCollection pro ...
- myeclipse 之 快捷键
简单记录一下,新装了个机器,win7系统,想设置一下自己习惯的快捷键 如:ctrl+alt+方向键,复制行,发现设置不上,原先的自带的也失效,设置一下ctrl+alt+其它键,ok可以使用,这说明某些 ...
- sdio/sd/mmc architecture
三个驱动mmc_core.ko mmc_block.ko omap_hsmmc.ko 读懂一个协议的架构有利于学习源码 参考了 http://processors.wiki.ti.com/index. ...
- 查看端口号他所占用的exe应用程序
- opatch auto in windows db in 11.2.0.4
--prapare:copy 192.168.63.83 D:\oracle_patch\1612 to 192.168.2.169 D:\oracle_patch\1612cd D:\oracle_ ...
- 超棒的自定义超酷滚动条jQuery插件 - Perfect Scrollbar
可能大家厌倦了千篇一律的页面滚动条,如果你希望能够设计出与众不同的页面UI设计的话,Perfect ScrollBar可能就是你寻找的解决方案. 这个滚动条来自于一个个人项目,一个简单但是非常棒的滚动 ...
- Sea Battle
Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- js获取当前日期与星期
var currentDate = new Date(); var weekday = ["星期日", "星期一", "星期二", &quo ...
- HDU<1372>/bfs
题目连接 简单bfs搜索 #include <set> #include <map> #include <cmath> #include <queue> ...