Codeforces 333E Summer Earnings - bitset】的更多相关文章

题目传送门 传送门I 传送门II 传送门III 题目大意 给定平面上的$n$个点,以三个不同点为圆心画圆,使得圆两两没有公共部分(相切不算),问最大的半径. 显然答案是三点间任意两点之间的距离的最小值的一半. 那么一定有一对点的距离会被算入答案. 考虑将所有边按距离从大到小排序.当加入某一条边的时候出现了三元环.那么这条边的长度的一半就是答案. 至于判断三元环就用bitset.再加上很难跑满,以及for自带二分之一常数就过了. 标算是二分答案,然后枚举一个点,保留距离和它大于等于$mid$的所有…
[题目分析] 找一个边长最大的三元环. 把边排序,然后依次加入.加入(i,j)时,把i和j取一个交集,看看是否存在,存在就找到了最大的三元环. 输出即可,n^3/64水过. [代码] #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <set> #include <bitset> #include <map>…
题目链接 Summer Earnings 类似MST_Kruskal的做法,连边后sort. 然后对于每条边,依次处理下来,当发现存在三角形时即停止.(具体细节见代码) 答案即为发现三角形时当前所在边长度的一半. #include <bits/stdc++.h> using namespace std; struct node{ int x, y, z; friend bool operator < (const node &a, const node &b){ retu…
time limit per test 9 seconds memory limit per test 256 megabytes input standard input output standard output Many schoolchildren look for a job for the summer, and one day, when Gerald was still a schoolboy, he also decided to work in the summer. Bu…
题意: 思路: //By SiriusRen #include <cstdio> #include <bitset> #include <vector> using namespace std; int n,m,q; char map[505][505],ans[600005]; struct Node{int x1,y1,x2,y2,id;}jy; vector<Node>vec; bitset<505>a[505][505],b[505][5…
Problem J. Triatrip Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/attachments Description The travel agency “Four Russians” is offering the new service for their clients. Unlike other agencies that only suggest one-way…
题目链接:http://codeforces.com/contest/707/problem/D 根据询问建立一棵树然后DFS. #include<bits/stdc++.h> using namespace std; const int N=1e3+3; const int maxn=1e5+3; int n,m,q; vector<int> G[maxn]; bitset<N> bit[N]; bitset<N> opp; int ope[maxn],a…
Problem J. TriatripTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/attachments Description The travel agency “Four Russians” is offering the new service for their clients. Unlike other agencies that only suggest one-way…
题目传送门 传送点I 传送点II 传送点III 题目大意 给定一个字母串,要求支持以下操作: 修改一个位置的字母 查询一段区间中,字符串$s$作为子串出现的次数 Solution 1 Bitset 每次匹配一段,可以看成,依次考虑每个位置,匹配的位置对应的起点取交集.例如: 大概就这个意思. bitset的count似乎很慢,可以用__builtin_popcount来数中间的位数,然后暴力数两端的位数会快很多.感觉手写倍增法数位数最快.但有人说前面那个内联函数比手写的$O(\log \log…
[题目链接] http://codeforces.com/problemset/problem/788/C [题目大意] 给出一些浓度的饮料,要求调出n/1000浓度的饮料,问最少需要多少升饮料 [题解] 设浓度为a,现在要求出系数x1,x2,x3……,使得x1*a1+x2*a2+x3*a3+……=n*(x1+x2+x3+……) 得a1*(x1-n)+a2*(x2-n)+a3*(x3-n)+……=0 假设现在有x1-n和x2-n,设其数值为x和y,那么一定有(x)*y+(-y)*x=0, x+y…