最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

CodeforcesRound#277.5(Div.2)解题报告_html/css

来源:懂视网 责编:小采 时间:2020-11-27 15:58:33
文档

CodeforcesRound#277.5(Div.2)解题报告_html/css

CodeforcesRound#277.5(Div.2)解题报告_html/css_WEB-ITnose:还是只会4道。sad。 A:SwapSort 用一个数组存储排好序之后。然后从头开始依次将需要交换的与本来应该在这个位置的交换,最多交换n-1次。 代码如下; #include #include #include #include #include #include #include #
推荐度:
导读CodeforcesRound#277.5(Div.2)解题报告_html/css_WEB-ITnose:还是只会4道。sad。 A:SwapSort 用一个数组存储排好序之后。然后从头开始依次将需要交换的与本来应该在这个位置的交换,最多交换n-1次。 代码如下; #include #include #include #include #include #include #include #

还是只会4道。sad。。

A:SwapSort

用一个数组存储排好序之后。然后从头开始依次将需要交换的与本来应该在这个位置的交换,最多交换n-1次。

代码如下;

#include #include #include #include #include #include #include #include #include #include #include using namespace std;int a[4000], b[4000], c[4000], d[4000];int main(){ int i, j, n, pos, cnt; while(scanf("%d",&n)!=EOF) { cnt=0; for(i=0;i

B: BerSU Ball

二分图最大匹配裸题。

代码如下:

#include #include #include #include #include #include #include #include #include #include #include using namespace std;int link[200], vis[200], n, m, a[200], b[200];int head[200], cnt;struct node{ int u, v, next;}edge[100000];void add(int u, int v){ edge[cnt].v=v; edge[cnt].next=head[u]; head[u]=cnt++;}int dfs(int u){ int i; for(i=head[u];i!=-1;i=edge[i].next) { int v=edge[i].v; if(!vis[v]) { vis[v]=1; if(link[v]==-1||dfs(link[v])) { link[v]=u; return 1; } } } return 0;}void hungary(){ int i, ans=0; memset(link,-1,sizeof(link)); for(i=0;i

C: Given Length and Sum of Digits...

贪心水题。

按照顺序依次填充。

代码如下:

#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL __int64const int INF=0x3f3f3f3f;int a[1000], b[1000];int main(){ int m, s, i, j, x; while(scanf("%d%d",&m,&s)!=EOF) { if(m*9=2; i--) { if(x>=9) { a[i]=9; x-=9; } else if(x>=0&&x<9) { a[i]=x; x=0; } } a[1]=x+1; x=s; for(i=1;i<=m;i++) { if(x>=9) { b[i]=9; x-=9; } else if(x>=0&&x<9) { b[i]=x; x=0; } } for(i=1;i<=m;i++) { printf("%d",a[i]); } printf(" "); for(i=1;i<=m;i++) { printf("%d",b[i]); } puts(""); } return 0;}

D: Unbearable Controversy of Being

枚举起点,分别进行BFS找到距离为2的点,然后记录到达这个点的次数,若次数大于2,说明存在,根据组合数来求解。

代码如下:

#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL __int64LL vis[4000], ans;int head[4000], cnt, n;struct node{ int u, v, next;}edge[50000];void add(int u,int v){ edge[cnt].v=v; edge[cnt].next=head[u]; head[u]=cnt++;}void bfs(int x){ int i; queueq; for(i=head[x];i!=-1;i=edge[i].next) { q.push(edge[i].v); } while(!q.empty()) { int u=q.front(); q.pop(); for(i=head[u];i!=-1;i=edge[i].next) { int v=edge[i].v; if(v!=x) vis[v]++; } } for(i=1;i<=n;i++) { if(vis[i]>=2) ans+=vis[i]*(vis[i]-1)/2; }}int main(){ int m, i, j, u, v; scanf("%d%d",&n,&m); ans=0; memset(head,-1,sizeof(head)); cnt=0; while(m--) { scanf("%d%d",&u,&v); add(u,v); } for(i=1;i<=n;i++) { memset(vis,0,sizeof(vis)); bfs(i); } printf("%I64d\n",ans); return 0;}

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

CodeforcesRound#277.5(Div.2)解题报告_html/css

CodeforcesRound#277.5(Div.2)解题报告_html/css_WEB-ITnose:还是只会4道。sad。 A:SwapSort 用一个数组存储排好序之后。然后从头开始依次将需要交换的与本来应该在这个位置的交换,最多交换n-1次。 代码如下; #include #include #include #include #include #include #include #
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top