NWERC2015-Elementary Math
来源:互联网 发布:网络用语吃鸡什么意思 编辑:程序博客网 时间:2024/05/24 06:43
题意分析:把一对数字看成一个点A,然后把一对数字的和、差、积视作另外三个点,把点A与这三个点连接起来可构成
一个二分图,然后跑匈牙利求最大匹配就好了。
图论果然难在建图与模型搭建啊,题目做得还是少了,WA了几次是因为相乘时没加(LL),这个错误犯了好几次了,
这次必须记下来!!
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<map>using namespace std;typedef long long LL;int ax[2510],bx[2510];LL Map[2510][5];map<LL,int> pre;map<LL,bool> ac;int N;char cx[3]={'-','+','*'};bool dfs(int x){ for(int i=0;i<3;i++) { LL z=Map[x][i]; if(!ac[z]) { ac[z]=1; if(pre[z]==0||dfs(pre[z])) { pre[z]=x; return true; } } } return false;}bool find1(){ int cnt=0; pre.clear(); for(int i=1;i<=N;i++) { ac.clear(); if(dfs(i)) cnt++; } return cnt==N;}int main(){ while(scanf("%d",&N)!=EOF) { memset(Map,0,sizeof(Map)); for(int i=1;i<=N;i++) { int a,b; scanf("%d%d",&a,&b); Map[i][0]=a-b,Map[i][1]=a+b,Map[i][2]=(LL)a*b; ax[i]=a,bx[i]=b; } if(find1()) { for(int i=1;i<=N;i++) { for(int j=0;j<3;j++) { if(pre[Map[i][j]]==i) { printf("%d %c %d = %lld\n",ax[i],cx[j],bx[i],Map[i][j]); break; } } } } else { printf("impossible\n"); } } return 0;}
阅读全文
0 0
- NWERC2015 Elementary Math
- NWERC2015-Elementary Math
- 【NWERC2015】【BZOJ4429】Elementary Math小学数学
- bzoj4429: [Nwerc2015] Elementary Math小学数学
- 【bzoj4429】[Nwerc2015] Elementary Math小学数学
- BZOJ 4429: [Nwerc2015] Elementary Math小学数学
- 【BZOJ4429】[Nwerc2015] Elementary Math小学数学【二分图匹配】
- bzoj 4429: [Nwerc2015] Elementary Math小学数学 网络流
- BZOJ 4429 [Nwerc2015] Elementary Math小学数学 二分图匹配
- BZOJ4429(Nwerc2015)[Elementary Math小学数学]--离散+二分图最大匹配
- Elementary Math、
- UVALive 7427Elementary Math
- Elementary Math Gym
- CF Elementary Math【网络流】
- BZOJ4429 Elementary Math小学数学 (二分图匹配)
- CodeFroces NWERC 2015 E.Elementary Math(二分图)
- 2015-2016 Northwestern European Regional Contest (NWERC 2015) E. Elementary Math
- 【NWERC2015】【BZOJ4428】Debugging调试
- python3.x导入pyquery报错问题
- MemSQL Start[c]UP 3.0
- 51Nod 1098 最小方差 枚举
- 丑数java实现
- colorAccent,colorPrimary,colorPrimaryDark
- NWERC2015-Elementary Math
- scala抽取器
- TP5项目在lnmp环境上线出现500错误
- javascript的for in 循环
- CentOS常使用命令
- 定长的顺序表及基本操作
- 如何让表单文本框左边标签文本右对齐---label
- Secret Milking Machine POJ
- JDK学习-CountDownLatch/CyclicBarrier