打得还不错的一场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. 上传下载文件, 同时部署在webapps下, 而不是项目下,防止重新部署tomcat, 上传文件消失

    前端上传 <a href='javascript:upload("+data[i].id+")' title='Upload Report'> <img src= ...

  2. Lvs+Keepalived+Bind+web构建高可用负载均衡系统

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://hatech.blog.51cto.com/8360868/1417899 --- ...

  3. C#后台绑定ComboBox

    C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syste ...

  4. HTML day03表格与表单

    1.表格 一般格式: <table> <thead><!--表格头--> <tr> <th></th> </tr>& ...

  5. CDockablePane 记忆界面布局的问题

    CWinAppEx类的LoadCustomState()和SaveCustomState()用于向注册表读取和保存应用程序的界面信息,重载该方法可以取消自动记忆界面布局. void CxxxApp:: ...

  6. 6--OC--封装 继承 多态

    OC中的类的三大特性类: 继承,封装,多态 一. 封装 封装就是对类中的一些字段,方法进行保护,不被外界所访问到,有一种权限的控制功能,这样我们在定义类的时候,哪些字段和方法不想暴露出去,哪些字段和方 ...

  7. HDU 3691 Nubulsa Expo

    无向图的最小割.套了个模板. #include<iostream> #include<cstdio> #include<cstring> #include<a ...

  8. 当浏览器窗体改变时,div跟着变动方法

    $(function(){ resizeU(); $(window).resize(resizeU); }); function resizeU() { var divkuangH = $(windo ...

  9. Android----ListView入门知识--各种Adapter配合使用

    引自:http://www.cnblogs.com/playing/archive/2011/03/21/1990555.html 在android开发中ListView是比较常用的组件,它以列表的形 ...

  10. jenkins 进阶系列网址

    http://www.cnblogs.com/zz0412/tag/jenkins/default.html?page=1