分类 模拟 下的文章

BZOJ 1800: [Ahoi2009]fly 飞行棋

Solution暴力找出直径个数,然后任意两条不一样的直径都可以构成一个矩形。计算一下就好了。Code#include <cstdio> #include <algorithm> using namespace std; const int N = 50; int w[N]; int main() { int n; scanf("%d", &n); for(int i=1; i<=n; i++) { int x; scanf("%d", &x); - 阅读剩余部分 -

BZOJ 1088: [SCOI2005]扫雷Mine

Solution如果我们已知第一个格子是否有雷,我们就可以依次计算出其他格子是否有雷。因此我们枚举一下第一个格子是否有雷,显然答案只能是 1 或 2,别忘了最后一个格子也需要检测是否合法。Code#include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int N = 1e6; int f[N]; int a[N]; int main() { int n; scanf("%d", &n); - 阅读剩余部分 -

BZOJ 3412: [Usaco2009 Dec]Music Notes乐谱

DescriptionInput第1行:两个整数N,Q.第2到N+1行:第i+l行只有一个整数Bi.第N+2到N+Q+I行:第N+i+l行只有一个整数Ti.Output第1到Q行:对与每个询问,在词问的时间内,奶牛敲击的是哪个音阶?Sample Input3 5 2 1 3 2 3 4 0 1Sample Output2 3 3 1 1Solution离线答案排下序,然后模拟一遍记录答案就可以了。Code#include <bits/stdc++.h> #define long long long using namespace std; inline void- 阅读剩余部分 -

BZOJ 1142: [POI2009]Tab

Description2个n*m矩阵,保证同一个矩阵中元素两两不同。问能否通过若干次交换两行或交换两列把第一个矩阵变成第二个。Input第一行正整数 T (1≤T≤10) 表示数据组数. 每组数据包括:第一行n m (1≤n,m≤1000) 2个n行m列的整数矩阵,元素绝对值均在10^6以内Output每组数据输出“TAK”/“NIE”表示能/不能.Sample Input2 4 3 1 2 3 4 5 6 7 8 9 10 11 12 11 10 12 8 7 9 5 4 6 2 1 3 2 2 1 2 3 4 5 6 7 8Sample OutputTAK NIESol- 阅读剩余部分 -

BZOJ 1620: [Usaco2008 Nov]Time Management 时间管理

题目描述N个工作,每个工作其所需时间,及完成的Deadline,问要完成所有工作,最迟要什么时候开始.输入第一行一个整数 n第二行两个整数 t s 分别是花费的时间和 dealine输出一个整数,开始的时间完成不了的话输出 -1样例输入43 58 145 201 16样例输出2题解按 dealine 排序,然后瞎搞就行了代码#include <cstdio> #include <iostream> #include <algorithm> using namespace std; const int INF = 1e9; int n, n- 阅读剩余部分 -

BZOJ 1621: [Usaco2008 Open]Roads Around The Farm分岔路口

题目描述约翰的N(1≤N≤1,000,000,000)只奶牛要出发去探索牧场四周的土地.她们将沿着一条路走,一直走到三岔路口(可以认为所有的路口都是这样的).这时候,这一群奶牛可能会分成两群,分别沿着接下来的两条路继续走.如果她们再次走到三岔路口,那么仍有可能继续分裂成两群继续走. 奶牛的分裂方式十分古怪:如果这一群奶牛可以精确地分成两部分,这两部分的牛数恰好相差K(1≤K≤1000),那么在三岔路口牛群就会分裂.否则,牛群不会分裂,她们都将在这里待下去,平静地吃草. 请计算,最终将会有多少群奶牛在平静地吃草.输入两个整数N和K.输出最后的牛群数.样例输入6 2- 阅读剩余部分 -