可以像筛选法那样标记 但是内存最多只能开1024的int数组 我用了位优化 用一个int 32 位标记32个数字 接下来就离线 排个序 算出第k大的哪个数
#include
#include
#include
using namespace std;
int a[10000000/32];
struct node
{
int x, y, id;
}b[50010];
int get(...
分类:
其他好文 时间:
2014-09-26 20:31:58
阅读次数:
162
求解的个数
对应ax+by=c 根据裴蜀定理c%gcd(a, b) == 0有解 假设d = gcd(a, b)
用扩展欧几里德求出方程aax+bb*y=cc 的解x0 y0
那么原方程的一个解就是x0*c/d和y0*c/d
通解为
x = x0+i*b/d
y = y0+i*a/d
分别讲x1 x2 带入得到i 满足最小的左区间 y1 y2一样
#include
#inclu...
分类:
其他好文 时间:
2014-09-25 00:05:08
阅读次数:
447
每个点有2中颜色 只有一条路上的两个点颜色一样才能通过这条路 最短路加上等待的时间处理 处理的是参考别人的 唉还是太弱了
#include
#include
#include
#include
#include
using namespace std;
int s, e;
int n, m;
int a[333];
int b[333];
int c[333];
int first[...
分类:
其他好文 时间:
2014-09-24 00:30:05
阅读次数:
270
无向图欧拉回路 欧拉通路
#include
#include
using namespace std;
struct edge
{
int v, next, b, id;
}e[210];
int vis[210];
int first[10], cnt;
int ans[210], len;
int f[10];
int find(int x)
{
if(x != f[x])
...
分类:
其他好文 时间:
2014-09-22 12:32:52
阅读次数:
234
第一维排序 第二维LIS
#include
#include
#include
using namespace std;
int dp[100010];
int p[100010];
struct node
{
int x, y, id;
}a[100010];
bool cmp(node a, node b)
{
if(a.x != b.x)
return a.x < b...
分类:
其他好文 时间:
2014-09-22 01:03:01
阅读次数:
275
时间限制:0.5s空间限制:4M题意: 有一个由管道组成的网络,有n个节点(n不大于100),1号节点可以制造原料,最后汇集到n号节点。原料通过管道运输。其中有一些节点有管道连接,这些管道都有着最大的流量限制,其中有一些管道必须充满。求1号节点最小的制造原料速度。如果原料不能运输到n,输出“Imp....
分类:
其他好文 时间:
2014-09-18 22:06:54
阅读次数:
239
题目链接:点击打开链接
题意:
求
思路:
我们发现所有素数间隔都是>=2的,且除了2都是奇数,那么:
奇数+奇数 = 偶数。
所以只有一种情况2+素数=素数。
所以打个素数表,看一下有多少个素数和前面那个素数间隔是2的。
#include
#include
#include
#include
#include
#include
#include
using na...
分类:
其他好文 时间:
2014-09-18 16:31:44
阅读次数:
176
题目链接:点击打开链接
#include
#include
typedef unsigned long long ll;
const int key = (int)(1e9) + 7;
const int N = 150010;
char b[N], a[N + N];
ll xp[N], h[N + N];
int len;
void get() {
char ch;
wh...
分类:
其他好文 时间:
2014-09-18 16:31:24
阅读次数:
170
题目链接:点击打开链接
题意:
地上有n个背包,编号从1-n
下面n行第i行: 第一个数字表示背包i里有几个背包。
这样就得到了n个背包的一个状态。
问:有多少个背包状态可以通过一系列的操作达到输入的状态。
每步操作:
选取一个在地面上的背包a,然后把a背包内部的背包放到地上,把地上的放到a背包内部
思路:
我们可以把背包的嵌套关系 用一个图来表示。
就得到了一...
分类:
其他好文 时间:
2014-09-18 16:30:34
阅读次数:
207
题目链接:点击打开链接
题意:
给定n个人,m个终点
下面n行表示每个人可以去m个点。
每个人只能去一个点。
输出任意一个方案使得每个点至少有2个人到达。
若存在输出m行,第一个数字表示i这个点来了几个人,后面是人的点标。
思路:
建一个二部图n-m,然后m到汇点限流2,判断是否满流,若不满流就无解。
若满流则其他的人随便走。
#include
#includ...
分类:
其他好文 时间:
2014-09-18 16:29:44
阅读次数:
269