打得还不错的一场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的更多相关文章

  1. Codeforces #180 div2 C Parity Game

    // Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...

  2. Codeforces #541 (Div2) - E. String Multiplication(动态规划)

    Problem   Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...

  3. Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)

    Problem   Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...

  4. Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)

    Problem   Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...

  5. Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)

    Problem   Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...

  6. 【Codeforces #312 div2 A】Lala Land and Apple Trees

    # [Codeforces #312 div2 A]Lala Land and Apple Trees 首先,此题的大意是在一条坐标轴上,有\(n\)个点,每个点的权值为\(a_{i}\),第一次从原 ...

  7. Codeforces #263 div2 解题报告

    比赛链接:http://codeforces.com/contest/462 这次比赛的时候,刚刚注冊的时候非常想好好的做一下,可是网上喝了个小酒之后.也就迷迷糊糊地看了题目,做了几题.一觉醒来发现r ...

  8. codeforces #round363 div2.C-Vacations (DP)

    题目链接:http://codeforces.com/contest/699/problem/C dp[i][j]表示第i天做事情j所得到最小的假期,j=0,1,2. #include<bits ...

  9. codeforces round367 div2.C (DP)

    题目链接:http://codeforces.com/contest/706/problem/C #include<bits/stdc++.h> using namespace std; ...

随机推荐

  1. easyui 动态渲染

    $.parser.parse   这个 $("div[data-easyuisrc]").html(function () { var url = $(this).attr(&qu ...

  2. Redis配置文件 翻译 V3.2版本

    # Redis配置文件例子. # # 注意:为了能读取到配置文件,Redis服务必须以配置文件的路径作为第一个参数启动 # ./redis-server /path/to/redis.conf # 关 ...

  3. 并查集+bfs+暴力滑窗 Codeforces Round #356 (Div. 2) E

    http://codeforces.com/contest/680/problem/E 题目大意:给你一个n*n的图,然后图上的 . (我们下面都叫做‘点’)表示可以走,X表示不能走,你有如下的操作, ...

  4. VB 对象变量或with块变量未设置

    先看错误代码,以下代码提示 对象变量或with块变量未设置: Dim obj As Object obj = WebBrowser1.Document.getElementById("swi ...

  5. 转 vi 技巧和诀窍:令人刮目相看的 10 个超酷命令

    for ksh vi 编辑器的许多选项可以控制编辑会话的外观和感觉.使用 :set 命令修改 vi 中的会话设置.按 Escape 键进入命令模式之后,可以使用 :set all 命令显示选项和设置的 ...

  6. php sso 单点登录的实现 代码示例

    先说一下这样做的好处吧,先来三个屌丝域名: www.openpoor.com myspace.openpoor.com passport.openpoor.com 大家都知道,虽然他们都是一个域名但主 ...

  7. 【转】Java 内部类种类及使用解析

    Java 内部类种类及使用解析 内部类Inner Class 将相关的类组织在一起,从而降低了命名空间的混乱. 一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分. Ja ...

  8. frame、bounds表示大小和位置的属性以及center、position、anchorPosition

    在iOS开发开发过程中经常会用到界面元素的frame.bounds表示大小和位置的属性以及center.position.anchorPosition等单纯表示位置的属性.这些属性究竟什么含义?彼此间 ...

  9. Android中图片占用内存的计算

    Android中图片占用内存的计算 原文链接 http://blog.sina.com.cn/s/blog_4e60b09d01016133.html   在Android开发中,我现在发现很多人还不 ...

  10. android 报错之noclassdeffounderror

    解决方案1: 导入第3方jar包问题,明明导入了jar但还是报java.lang.NoClassDefFoundError解决步骤:1.在Android项目根目录下新建一个lib文件夹:2.把你需要导 ...