zoj 2316 Matrix Multiplication 解题报告

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2316

题目意思:有 N 个 点,M 条 边。需要构造一个N * M 大小的矩阵A。对于 (i, j) 这个坐标点它表示,对编号为 i 这个点编号为 j 的 点与它相连,此时标记(i, j) 为1,如果坐标点没有跟这条 j 的边相连,就标记为0。构造完这个矩阵A之后,需要求出它的转置矩阵AT,算出 ATA 的和。

新学期第一场比赛!刚开始真是打算直接做的,但是数据太大了, 2 <= N <= 10 000, 1 <= M <= 100 000,只能通过观察来简化,最后做了3个多小时,终于想出来了= =!大感动!专门补了下矩阵的知识......

规律真的需要手动算下才能发现的!!!后来还犯了个低级错误,忘记清空了。每个Test 都需要啦。最后就是格式问题。每个output之间输出一个空行。

贴个代码纪念下。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstdlib>
 4 #include <cstring>
 5 using namespace std;
 6
 7 typedef long long LL;
 8 const int N = 10000 + 2;
 9
10 LL A[N], ans;
11
12 int main()
13 {
14     int T, n, m, v1, v2;
15     while (scanf("%d", &T) != EOF)
16     {
17         while (T--)
18         {
19             int maxi = -1;
20             scanf("%d%d", &n, &m);
21             memset(A, 0, sizeof(A));
22             for (int i = 1; i <= m; i++)
23             {
24                 scanf("%d%d", &v1, &v2);
25                 A[v1]++;    // 算出每个点连着多少条边
26                 A[v2]++;
27                 int tm = max(v1, v2);
28                 maxi = max(maxi, tm);   // 求出最大那个点的编号
29             }
30             ans = 0;
31             for (int i = 1; i <= maxi; i++)
32             {
33                 if (A[i])
34                     ans += A[i] * A[i];
35             }
36             printf("%lld\n", ans);
37             if (T)
38                 puts("");
39         }
40     }
41     return 0;
42 }
时间: 2025-01-01 20:52:41

zoj 2316 Matrix Multiplication 解题报告的相关文章

ZOJ 2316 Matrix Multiplication

Matrix Multiplication Time Limit: 2000ms Memory Limit: 32768KB This problem will be judged on ZJU. Original ID: 231664-bit integer IO format: %lld      Java class name: Main Let us consider undirected graph G = <v, e="">which has N vertice

ZOJ Monthly, June 2014 解题报告

A.Another Recurrence Sequence B.Gears 题目大意:有n个齿轮,一开始各自为一组,之后进行m次操作,包括以下4种类型: 1.合并两组齿轮,合并的两个应该反向旋转 2.把某个齿轮从所在组删除,自为一组,但不影响同组其它齿轮的状态与关系 3.询问两个齿轮是同向.反向或无关系(即不在同一组) 4.询问某个齿轮所在组的齿轮总数 分析:典型的并查集操作,但是注意两点: 1.由于操作3要询问两个齿轮的相对状态,因此对并查集中每个元素应当保存它的状态信息.状态是相对的,只需要

ZOJ Problem Set - 1025解题报告

ZOJ Problem Set - 1025 题目分类:动态规划 原题地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1025   题目大意就是有很多木头,都有各自的长度和重量.现在要加工这些木头,如果加工某根木头的长度和重量大于等于它上一根木头的长度和重量,那么加工它不需要时 间,否则要花1分钟.现给出一堆木头的长度和重量,要求加工完这堆木头可以花的最少时间.例如给出5根木头长度重量分别为(4,9), (5,2),

【LeetCode】Set Matrix Zeroes 解题报告

今天看到CSDN博客的勋章换了图表,同时也增加显示了博客等级,看起来都听清新的,感觉不错! [题目] Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. click to show follow up. Follow up: Did you use extra space? A straight forward solution using O(mn) spac

LeetCode: Spiral Matrix II 解题报告-三种方法解决旋转矩阵问题

Spiral Matrix IIGiven an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For example,Given n = 3, You should return the following matrix:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]] SOLUTION 1: 还是与上一题Spiral Matrix类似

ZOJ 3706 Break Standard Weight 解题报告

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5009 题目意思:给出两个mass:x 和 y,问如何将其中一个 mass 一分为二(当然分完之后它们的和要等于原来的mass,或x 或 y),使得利用这三个mass 可称的数量最大.输出这个最大数量. 网上参考别人用STL中的set来写,太厉害了!!!考虑到set对于重复的元素只存储一个,那么当三个mass组合的过程中有重复的,它都会自动舍弃有重复的,不需要用if来

zoj 2313 Chinese Girls&#39; Amusement 解题报告

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1313 题目意思:有 N 个人(编号依次为1~N)围成一个圆圈,要求求出最大的 K (1 ≤ K ≤ N/2),表示从编号为1的人开始,将球传递给他后一个人数起的第K个人,第K个人又传递给往后数的第K个人......要求这样传递下去,且每个人都有机会接到球.也就是不存在当未使得全部人都接到一次球的情况下,某个人接收到两次以上的球. 详细的解题报告在这里: http:/

POJ1060 Modular multiplication of polynomials解题报告 (2011-12-09 20:27:53)(转)

Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3239   Accepted: 1459 Consider polynomials whose coefficients are 0 and 1. Addition of two polynomials is achieved by 'adding' the coefficients for the corresponding powers in the polynomia

poj分类解题报告索引

图论 图论解题报告索引 DFS poj1321 - 棋盘问题 poj1416 - Shredding Company poj2676 - Sudoku poj2488 - A Knight's Journey poj1724 - ROADS(邻接表+DFS) BFS poj3278 - Catch That Cow(空间BFS) poj2251 - Dungeon Master(空间BFS) poj3414 - Pots poj1915 - Knight Moves poj3126 - Prim