位图像素的颜色 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1299 Accepted Submission(s): 597 Problem Description 有一个在位图上画出矩形程序,一开始位
今晚的校赛又告一段落啦,终于“开斋”了! AC了两题,还算是满意的,英语还是硬伤。 来看题目吧! B. Array time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard outp
剪刀石头布 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 0 Accepted Submission(s): 0 Problem Description
位图像素的颜色 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 0 Accepted Submission(s): 0 Problem Description 有一个在位图上画出矩形程序,一开始位图
题意分析 有一个 n n n 个点, n − 1 n-1 n−1 条边的无向图,边权均为 1 1 1。 每个点隶属于一个集合,同一个集合的点可以互相传送。 给定 m m m 个询问,求 x , y x, y x,y 的最短距离。 最短路解法 步骤: 建图。对于所有询问各跑一次最短路算法。 可选用的最短路算法: Spfa,单次时间复杂度 O ( n ) ∼ O
解题思路 首先,我们考虑一下整个数组都是由质数构成的情况。 当我们要将质数 x x x 向后移 k k k 个时,如果我们可以知道质数 x x x 在质数数组的下标 j j j,那么就可以通过 p r i m e s [ j + k ] primes[j + k] primes[j+k] 来获取向后移 k k k 个的质数。因此,我们需要在线性筛预处理时,记录下质数的
思路: 看题解的时候可以结合这篇博客 首先我们要搞清楚维护的是啥。 我们对每一个 a [ i ] a[i] a[i]维护一个 m m m位的bitset,表示 a [ i ] a[i] a[i]是否大于 b [ j ] b[j] b[j]。 这样的 b i t s e t bitset bitset最多只有 m m m种,因为 b b b数组就m个数字,这个有单调性。 所以我们可以预处理出这
题目都很短就懒得写题意了。 思路: 把每个字符的后缀都用hash表示然后用map存起来算数目。 统计的时候,对于当前的前缀我们可以算出其在后缀中出现的次数。 但问题是这样可能有重复。 解决办法是: c n t [ n e x t [ i ] ] − = c n t [ i ] cnt[next[i]] -= cnt[i] cnt[next[i]]−=cnt[i] 因为假设p1是p2的最长公共
题意: 按照 c [ i ] = b [ a [ i ] ] c[i]=b[a[i]] c[i]=b[a[i]]进行置换,给你起点排列和终点排列,置换了k次,求置换排列 思路: 模拟枚举环上节点,然后置换数组就对应 p [ b [ i ] ] = b [ i + 1 ] p[b[i]]=b[i+1] p[b[i]]=b[i+1],相当于在环上后移一位。 是道原题,详解可以看: https:
题意: a [ i ] [ j ] = l c m ( i , j ) a[i][j]=lcm(i,j) a[i][j]=lcm(i,j) 求所有 k ∗ k k*k k∗k小矩阵的最大值和。 思路: 维护横向单调队列求每一行的前 k k k个数最值,再用纵向单调队列求出纵向前 k k k个数最值。这样求出每一点对应 k ∗ k k*k k∗k矩阵的最值了。 但是本题求lcm是log,会
Problem Description Little Q’s factory recently purchased m pieces of new equipment, labeled by 1,2,…,m. There are n workers in the factory, labeled by 1,2,…,n. Each worker can be assigned to no more
#include<iostream>using namespace std;const int N = 10, M = 7;int e[N][N] = {0}, f[N], open[N];//e[i][j]表示i和j之间是否连通;f[i]表示结点i的父节点;open[i] 1表示结点i打开,0表示关闭 long long ans = 0;int find(int x){if(f[x]