Codeforces 413B Spyke Chatting(数论简单)

题目链接:Codeforces 413B Spyke Chatting

题目大意:n个人,m种聊天器,k次发送消息,然后给出n*m的矩阵,如果g[i][j]为1,则表示i号人会使用j号聊天器,接着给出k次消息发送者和聊天器,如果i在j种聊天器上发送了一条消息,那么所有使用j种聊天器的人都会接受到消息。现在要求每个人会接受到几条消息,自己发送的不算。

解题思路:分别记录每个聊天器上有多少个消息,以及每个人发送了多少条消息,然后计算每个人接受到多少条消息的时候只要将这个人所使用的各个聊天器消息数取和在减去自己发送消息的个数即可。

#include <cstdio>
#include <cstring>

const int N = 2 * 1e4 + 5;

int n, m, k, c[N], r[15];
int g[N][15];

void init () {
	memset(r, 0, sizeof(r));
	memset(c, 0, sizeof(c));
	memset(g, 0, sizeof(g));

	scanf("%d%d%d", &n, &m, &k);

	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++)
			scanf("%d", &g[i][j]);
	}
}

void solve () {
	int a, b;
	for (int i = 0; i < k; i++) {
		scanf("%d%d", &a, &b);
		c[a]++;
		r[b]++;
	}

	for (int i = 1; i <= n; i++) {
		int t = 0;
		for (int j = 1; j <= m; j++) {
			if (g[i][j])
				t += r[j];
		}
		c[i] = t - c[i];
	}

	for (int i = 1; i < n; i++)
		printf("%d ", c[i]);
	printf("%d\n", c[n]);
}

int main () {
	init ();
	solve ();
	return 0;
}

Codeforces 413B Spyke Chatting(数论简单),码迷,mamicode.com

时间: 2024-10-08 18:36:51

Codeforces 413B Spyke Chatting(数论简单)的相关文章

[CodeForces - 1225C]p-binary 【数论】【二进制】

[CodeForces - 1225C]p-binary [数论][二进制] 题目描述 Time limit 2000 ms Memory limit 524288 kB Source Technocup 2020 - Elimination Round 2 Tags bitmasks brute force math *1600 Site https://codeforces.com/problemset/problem/1225/c 题面 Example Input1 24 0 Output

数论 --- 简单题

吃糖果 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 22376    Accepted Submission(s): 6396 Problem Description HOHO, 终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢先吃一种,下一次吃另一 种,这样:

CodeForces 413B 手速题

//CodeForces 413B 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include "algorithm" 5 #include "vector" 6 using namespace std; 7 int mat[20010][12], ans[200010], line[12]; 8 int n, m, k

Codeforces 828B Black Square(简单题)

Codeforces 828B Black Square(简单题) Description Polycarp has a checkered sheet of paper of size n?×?m. Polycarp painted some of cells with black, the others remained white. Inspired by Malevich's "Black Square", Polycarp wants to paint minimum pos

数论 --- 简单计算

Power of Cryptography Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 18018   Accepted: 9090 Description Current work in cryptography involves (among other things) large prime numbers and computing powers of numbers among these primes. W

数论简单题 组合数

本人水平有限,题解不到为处,请多多谅解 本蒟蒻谢谢大家观看 题目: 数论简单题 (simple.cpp/in/out 1s 256M) 由于最终结果可能超过int的范围,因此请将运算结果对1000000007取模. Input 第1行,一个整数T(T <= 200000),表示数据组数. 第2行至第T+1行,每行两个整数m, n. 0 < m <= n <= 2000 Output 共T行,每行输出一个整数,代表求和结果. Sample Input 3 1 1 2 3 3 3 Sa

Codeforces - 346A - Alice and Bob - 简单数论

http://codeforces.com/problemset/problem/346/A 观察了一下,猜测和他们的最大公因数有关,除以最大公因数前后结果是不会变的. 那么怎么证明一定是有n轮呢?我猜就是因为现在至少有几个是互质的,所以总是可以构造出1?具体怎么证明呢?还是看看别人的思路吧-- 首先最终停止的状态一定是一个等差数列,这个是毫无疑问的.设首项为d,那么肯定停止于d,2d,3d,...,n,那么很显然d就是他们的最大公因数啊--对哦?! #include<bits/stdc++.h

Codeforces 1034C Region Separation - 数论 - 动态规划

题目传送门 传送站I 传送站II 传送站III 题目大意 给定一个$n$个点的树$T = (G, V)$,每个点有一个正整数点权$a_{i}$.整棵树是第1级划分.定义第$i$级划分是将第$i - 1$级划分中的每个区域划分成至少两个新的区域,并且所有区域都是一个连通块,每个点在每一级中只属于一个区域,在同一级划分内每个区域内的点的点权和相等.一种划分方案包含它划分的每一级.两种划分方案不同当且仅当它们划分的级数不同,或者存在一个点在某一级中它们在两种划分方案中属于不同区域. 之前好像某次noi

CodeForces 703C Chris and Road (简单几何)

题意:有一个n边形的汽车向以速度v向x轴负方向移动,给出零时时其n个点的坐标.并且有一个人在(0,0)点,可以以最大速度u通过w宽的马路,到达(0,w)点.现在要求人不能碰到汽车,人可以自己调节速度.问人到达马路对面的最小时间是多少? 析:这个题是一个简单的分类讨论,很明显只有两种情况,第一种,直接到达w,不会被车撞到,答案就是w/u, 第二种是切着车过去,或者是等车过去再过去,只要枚举车的每个顶点,找到最后通过y轴的点就好,或者根本不会与车相切. 代码如下: #pragma comment(l