POJ 3275 两种做法
题意:
思路:
1.Floyd传递闭包 n^3/32 勉强卡过去吧……
2.用邻接表搞Floyd 也是勉强卡过去……
最后用n*(n-1)-矩阵中为1的个数就OK了
传递闭包:
//By SiriusRem
#include <bitset>
#include <cstdio>
#include <algorithm>
using namespace std;
bitset<1005>map[1005];
int n,m,xx,yy,ans;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
scanf("%d%d",&xx,&yy);
map[xx][yy]=1;
}
for(int j=1;j<=n;j++){
for(int i=1;i<=n;i++){
if(map[i][j])map[i]|=map[j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(map[i][j])ans++;
}
}
printf("%d\n",n*(n-1)/2-ans);
}
邻接表:
//By SiriusRem
#include <bitset>
#include <cstdio>
#include <algorithm>
using namespace std;
#define N 1000005
int n,m,xx,yy,v[N],first[N],next[N],tot,map[1005][1005];
int first2[N],next2[N],v2[N],tot2;
void add(int x,int y){
v[++tot]=y,next[tot]=first[x],first[x]=tot;
}
void add2(int x,int y){
v2[++tot2]=y,next2[tot2]=first2[x],first2[x]=tot2;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
scanf("%d%d",&xx,&yy);
add(xx,yy);
map[xx][yy]=1;
add2(yy,xx);
}
for(int k=1;k<=n;k++){
for(int i=first2[k];i;i=next2[i]){
for(int j=first[k];j;j=next[j]){
if(!map[v2[i]][v[j]]){
m++;
map[v2[i]][v[j]]=1;
add(v2[i],v[j]);
add2(v[j],v2[i]);
}
}
}
}
printf("%d\n",n*(n-1)/2-m);
}
POJ 3275 两种做法的更多相关文章
- jqGrid中实现radiobutton的两种做法
http://blog.sina.com.cn/s/blog_4f925fc30102e27j.html jqGrid中实现radiobutton的两种做法 ------------------- ...
- SqlServer保留几位小数的两种做法
SqlServer保留几位小数的两种做法 数据库里的 float momey 类型,都会精确到多位小数.但有时候 我们不需要那么精确,例如,只精确到两位有效数字. 解决: 1. 使用 Round( ...
- 「POJ 3666」Making the Grade 题解(两种做法)
0前言 感谢yxy童鞋的dp及暴力做法! 1 算法标签 优先队列.dp动态规划+滚动数组优化 2 题目难度 提高/提高+ CF rating:2300 3 题面 「POJ 3666」Making th ...
- LVS+keepalived 的DR模式的两种做法
LVS DR模式搭建 准备工作 三台机器: dr:192.168.13.15 rs1:192.168.13.16 rs2: 192.168.13.17 vip:192.168.13.100 修改DR上 ...
- [正经分析] DAG上dp两种做法的区别——拓扑序与SPFA
在下最近刷了几道DAG图上dp的题目. 要提到的第一道是NOIP原题<最优贸易>.这是一个缩点后带点权的DAG上dp,它同时规定了起点和终点. 第二道是洛谷上的NOI导刊题目<最长路 ...
- [转载]EasyUI Pagination 分页的两种做法
EasyUI 的 datagrid 支持服务器端分页,但是官方的资料比较少,以下总结了两种 datagrid 的服务器端分页机制,可根据情况具体使用. 一:使用 datagrid 默认机制 后台: p ...
- 两种MD5最后的值不一样,因为两种做法不一样
//MD5加密 private static string Md5Hash(string input) { MD5CryptoServiceProvider m ...
- EasyUI Pagination 分页的两种做法
EasyUI 的 datagrid 支持服务器端分页,但是官方的资料比较少,以下总结了两种 datagrid 的服务器端分页机制,可根据情况具体使用. 一:使用 datagrid 默认机制 后台: p ...
- 移动端Web适配的两种做法思路总结
看了几篇文章,理一下网易跟淘宝移动端适配的思路,主要是参考 从网易与淘宝的font-size思考前端设计稿与工作流 像素相关概念 物理像素(physical pixel) 一个物理像素是显示器(手机屏 ...
随机推荐
- SFTP使用key文件登录
命令: sftp -oPort= -oIdentityFile=/root/.ssh/user.priv user@39.39.100.100 命令选项: -o ssh_option Can be u ...
- Linux学习总结(14)——Linux权限控制
linux中,权限的学习是必不可少的,不论是作为一名运维工程师或者是单一的管理者,学习好linux中的权限控制,你就可以保护好自己的隐私同时规划好你所管理的一切. 权限的学习是很多的,不要认为自己已经 ...
- Java基础学习总结(43)——Java8 Lambda揭秘
再了解了Java 8 Lambda的一些基本概念和应用后, 我们会有这样的一个问题: Lambda表达式被编译成了什么?. 这是一个有趣的问题,涉及到JDK的具体的实现. 本文将介绍OpenJDK对L ...
- System and method for assigning a message
A processor of a plurality of processors includes a processor core and a message manager. The messag ...
- Java设置Client Socket链接Server超时时间
Java设置Client Socket链接Server超时时间 学习了:http://blog.csdn.net/tterminator/article/details/52494141 http:/ ...
- weblogic 生产模式和开发模式的互相转换
weblogic 生产模式和开发模式的互相转换 学习了:http://blog.csdn.net/qew110123/article/details/45845935 weblogic10.3生产模式 ...
- sublime搜索和替换--多文件搜索替换
Search and Replace - Multiple Files Searching To open the search panel for files, press Ctrl + Shift ...
- iOS 中client和server的 Web Service 网络通信 (1)
当你打开你手机上新浪微博应用或者知乎应用是.你是否会去想这些显示在手机上的图片和数据时从哪里来的?又是通过如何的方法实现的?好.那么接下来就介绍是如何实现的.过程又是怎么样的. 当我们浏览着 ...
- bzoj2127: happiness(双倍经验最小割)
2127: happiness 题目:传送门 题解: 双倍经验美滋滋~ 请看蒟蒻以前写的渣题解...bzoj3894 表示做完自己就最小割了... 代码(直接改的...菜啊): #include< ...
- NET下Assembly的加载过程
NET下Assembly的加载过程 最近在工作中牵涉到了.NET下的一个古老的问题:Assembly的加载过程.虽然网上有很多文章介绍这部分内容,很多文章也是很久以前就已经出现了,但阅读之后发现,并没 ...