这次打得较差,差点就绿了。。。

B题,这B题竟然WA了,再看看就发现一个很严重的错误。。--!

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>using namespace std;int num[3050];int main(){int n;while(scanf("%d",&n)!=EOF){for(int i=0;i<n;i++){scanf("%d",&num[i]);}sort(num,num+n);int cnt=0,ans=0;for(int i=1;i<n;i++){if(num[i]==num[i-1]){cnt++;}else {int k=num[i]-num[i-1]-1;if(k>=cnt){ans=ans+(1+cnt)*cnt/2;cnt=0;}else{ans=ans+(1+k)*k/2;cnt-=k;}ans=ans+cnt*(k+1);}}if(cnt>0){ans=ans+(1+cnt)*cnt/2;}printf("%d\n",ans);}return 0;
}

  

D题,可以预处理出各个数个含的质数的个数,可以用循环处理,求前缀和。循环是,从2开始,d记录下它有没有质因子,d=0则证明它当前是素数,第二层对j=i*k这样的数求它含有i的个数。如果d不为0,说明它不是素数,且由于一直循环,所以处理到它时就是已经把它所有质因子个数算出来了。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define LL long long
using namespace std;
const int N=5000000;
int d[N+10];
int s[N+10];void initial(){memset(d,0,sizeof(d));s[0]=s[1]=0;for(int i=2;i<=N;i++){if(d[i]==0){d[i]++;for(int j=i+i;j<=N;j+=i){int c=j;while(c%i==0){d[j]++;c/=i;}}}s[i]=s[i-1]+d[i];}
}int main(){initial();int T,a,b;scanf("%d",&T);while(T--){scanf("%d%d",&a,&b);printf("%d\n",s[a]-s[b]);}return 0;
}

  

E题,二分图网络流

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;
/*
这道在开始也在想网络流,但是,看到只能移动一条边时,就无语了。。群里一讨论,对哦,二分图拆点建边,
这样就是一条边了。。。T_T我果然是渣。。 s->i建一条a[i]的边,i+n->e建一条b[i]的边。u-v就按u->v',v->u'。
注意加上u->u'
*/const int INF=0x3f3f3f3f;
const int MAXN=300;//点数的最大值
const int MAXM=2000;//边数的最大值struct Node
{int from,to,next;int cap;
}edge[MAXM];
int tol;int dep[MAXN];//dep为点的层次
int head[MAXN];
int flow[MAXN][MAXN];
int n,m;
void init()
{tol=0;memset(head,-1,sizeof(head));
}
void addedge(int u,int v,int w)//第一条变下标必须为偶数
{edge[tol].from=u;edge[tol].to=v; edge[tol].cap=w;  edge[tol].next=head[u];head[u]=tol++;edge[tol].from=v;edge[tol].to=u;edge[tol].cap=0;edge[tol].next=head[v];head[v]=tol++;
}int BFS(int start,int end)
{int que[MAXN];int front,rear; front=rear=0;memset(dep,-1,sizeof(dep));que[rear++]=start;dep[start]=0;while(front!=rear){int u=que[front++];if(front==MAXN)front=0;for(int i= head[u];i!=-1; i=edge[i].next){int v=edge[i].to;if(edge[i].cap>0&& dep[v]==-1){dep[v]=dep[u]+1;que[rear++]=v;if(rear>=MAXN) rear=0;if(v==end)return 1;}}}return 0;
}
int dinic(int start,int end)
{int res=0;int top;int stack[MAXN];//stack为栈,存储当前增广路int cur[MAXN];//存储当前点的后继while(BFS(start,end)){memcpy(cur,head, sizeof(head));int u=start;top=0;while(1){if(u==end)         //到达汇点{int min=INF;int loc;for(int i=0;i<top;i++)if(min>edge[stack[i]].cap){min=edge[stack[i]].cap;loc=i;}for(int i=0;i<top;i++){edge[stack[i]].cap-=min;edge[stack[i]^1].cap+=min;}res+=min;         top=loc;                // 以最小边的起点为源点再寻找其他增广路径u=edge[stack[top]].from;}for(int i=cur[u];i!=-1;cur[u]=i=edge[i].next)         //寻找可增广的路径,即确定edge[]中以u为起点可增广的i的第一条边的位置if(edge[i].cap!=0 && dep[u]+1==dep[edge[i].to])break;if(cur[u]!=-1){stack [top++]=cur[u];u=edge[cur[u]].to;}else{if(top==0) break;   //不能再增广dep[u]=-1;u= edge[stack [--top] ].from;   //退栈寻找下一条}}}return res;
}int bef[MAXN],aft[MAXN];int main(){int s,e;while(scanf("%d%d",&n,&m)!=EOF){init();int sum=0; s=0; e=2*n+1;memset(flow,0,sizeof(flow));for(int i=1;i<=n;i++){scanf("%d",&bef[i]);sum+=bef[i];}int cp=sum;for(int i=1;i<=n;i++){scanf("%d",&aft[i]);sum-=aft[i];}for(int i=1;i<=n;i++){addedge(s,i,bef[i]);addedge(i+n,e,aft[i]);addedge(i,i+n,INF);}int u,v;for(int i=1;i<=m;i++){scanf("%d%d",&u,&v);addedge(u,v+n,INF);addedge(v,u+n,INF);}if(sum!=0){printf("NO");}else{int res=dinic(s,e);if(res!=cp){puts("NO");}else{puts("YES");for(int i=n+1;i<=2*n;i++){int v=i-n;for(int ei=head[i];ei!=-1;ei=edge[ei].next){int u=edge[ei].to;if(u<e){flow[u][v]=edge[ei].cap;}}}for(int i=1;i<=n;i++){printf("%d",flow[i][1]);for(int j=2;j<=n;j++)printf(" %d",flow[i][j]);printf("\n");}}}}
}

  

转载于:https://www.cnblogs.com/jie-dcai/p/4523897.html

Codeforces Round #304 (Div. 2)相关推荐

  1. 水题 Codeforces Round #304 (Div. 2) A. Soldier and Bananas

    题目传送门 1 /* 2 水题:ans = (1+2+3+...+n) * k - n,开long long 3 */ 4 #include <cstdio> 5 #include < ...

  2. Codeforces Round #304 (Div. 2) D. Soldier and Number Game 数学 质因数个数

    D. Soldier and Number Game Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/conte ...

  3. codeforces水题100道 第五题 Codeforces Round #304 (Div. 2) A. Soldier and Bananas (math)

    题目链接:http://www.codeforces.com/problemset/problem/546/A 题意:一个人现在有n元,它买第i根香蕉需要i*k元,问他要买w根香蕉的话,需要问他的朋友 ...

  4. Codeforces Round #297 (Div. 2)E. Anya and Cubes 折半搜索

    Codeforces Round #297 (Div. 2)E. Anya and Cubes Time Limit: 2 Sec  Memory Limit: 512 MB Submit: xxx  ...

  5. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  6. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  7. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  8. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  9. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

最新文章

  1. 一步步学习SPD2010--第十章节--SP网站品牌化(9)--理解SP的CSS继承
  2. 计算机应用类专业综合冲刺卷,2009年计算机应用类专业综合知识模拟试卷.doc
  3. eclipselink mysql_Eclipselink更新现有表
  4. idea项目名后出现中括号别名
  5. 【javascript】js实现复制、粘贴
  6. python hdf5 —— h5py
  7. SQL语言入坑—1.数据的检索、排序、过滤、分组
  8. 背包之01背包、完全背包、多重背包详解
  9. 2018中国旅游统计年鉴
  10. 直线绘制算法-中点画线法
  11. 北京理工大学计算机面试题,北京理工大学自主招生面试试题综合素质答案技巧.doc...
  12. AWS EFS vs EBS vs S3(差异和何时使用?)
  13. 嵌入式驱动学习之PWM蜂鸣器驱动
  14. C#之 正则表达式和特殊字符
  15. 励销云全流程智能销售解决方案,助力B2B企业高效增长
  16. back track 5 / BT5 默认用户名密码
  17. 孙溟㠭书画《野狐禅》
  18. Linux当中如何隐藏和查看进程
  19. 娃娃鸭Delphi面向对象编程思想刘艺笔记
  20. 使用PDF处理控件Aspose.PDF以编程方式打印PDF文档完整攻略

热门文章

  1. PHP移动互联网开发笔记(3)——运算符
  2. 详解 Spotlight on MySQL监控MySQL服务器
  3. ionic最新安装教程
  4. 【iHMI43 4.3寸液晶模块】demo例程(版本1.02)发布
  5. Windows Phone 的后台代理不支持的 API
  6. nginx的upstream模块安装
  7. fail2ban封IP之Http
  8. 算法组合 优化算法_算法交易简化了风险价值和投资组合优化
  9. vue取数据第一个数据_我作为数据科学家的第一个月
  10. 2059. 转化数字的最小运算数