题目链接 把棋盘黑白染色,构建二分图,然后s点连黑1 ,黑连白INF ,白连t 1,注意黑白相连为一步可达 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN = 41000; const int MAXM = 10000010; const int INF = 0x3f3f3f3f; //const ll MOD = 998244353; int dir[8][2]={ {2,1},{-2,1},{2,-1},{-2,-1} , {1,2},{1,-2},{-1,2},{-1,-2} }; inline int read(){int ra,fh;char rx;rx=getchar(),ra=0,fh=1; while((rx<'0'||rx>'9')&&rx!='-')rx=getchar();if(rx=='-') fh=-1,rx=getchar();while(rx> 继续阅读 >>


楚东方 17/10/09 11:54:42
A. Bark to Unlock 注意特判相等的情况 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int INF = 1e9; inline int read(){int ra,fh;char rx;rx=getchar(),ra=0,fh=1; while((rx<'0'||rx>'9')&&rx!='-')rx=getchar();if(rx=='-') fh=-1,rx=getchar();while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48, rx=getchar();return ra*fh;} int n; string s; string w; int main() { // freopen("data.txt","r",stdin); ios_base::sync_with_stdio(false); ci 继续阅读 >>


楚东方 17/10/05 21:27:36
1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 1031  Solved: 582 [Submit][Status][Discuss] Description Oh those picky N (1 <= N <= 50,000) cows! They are so picky that each one will only be milked over some precise time interval A..B (1 <= A <= B <= 1,000,000), which includes both times A and B. Obviously, FJ must create a reservation system to determine which stall each cow c 继续阅读 >>


楚东方 17/10/05 18:06:27
图论 传递背包 用于判断任意两点是否存在关系 作者:chudongfang2015 发表于2017/9/26 20:59:55 原文链接 阅读:4 评论:0 查看评论 继续阅读 >>


楚东方 17/09/26 20:59:55
1600: [Usaco2008 Oct]建造栅栏 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1348  Solved: 841 [Submit][Status][Discuss] Description 勤奋的Farmer John想要建造一个四面的栅栏来关住牛们。他有一块长为n(4<=n<=2500)的木板,他想把这块本板切成4块。这四块小木板可以是任何一个长度只要Farmer John能够把它们围成一个合理的四边形。他能够切出多少种不同的合理方案。注意: *只要大木板的切割点不同就当成是不同的方案(像全排列那样),不要担心另外的特殊情况,go ahead。 *栅栏的面积要大于0. *输出保证答案在longint范围内。 *整块木板都要用完。 Input *第一行:一个数n Output *第一行:合理的方案总数 Sample Input 6 Sample Output 6 输出详解: 继续阅读 >>


楚东方 17/09/25 23:14:38
题目链接 根据题意,把值变换成数的个数,这样就变成了求最长非递减子序列,这里用O(n*log(n))的办法 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N =200005; const int INF =1e9+5; ll a; ll v; ll t; vector<ll> num; //LIS O(n*log(n)); int getLISLength( int length) { vector<ll> ivec; ivec.clear(); for(int i = 0; i < length; ++i) { if (ivec.size() == 0 || ivec.back() <= num[i]) ivec.push_back(num[i]); else { 继续阅读 >>


楚东方 17/09/25 15:00:20
题目链接 因为n只到20,直接利用二进制的位运算暴力解决,1代表有该元素,0代表没有该元素 #include<bits/stdc++.h> using namespace std; typedef long long ll; int n; double m; stringstream ss; string s; int t; int c[55]; int sum=0; int main() { // freopen("data.txt","r",stdin); ios_base::sync_with_stdio(false); memset(c,0,sizeof(c)); getline(cin,s); ss<<s; ss>>n>>m; while(getline(cin,s)) { ss.clear(); ss<<s; while(ss >> t) { 继续阅读 >>


楚东方 17/09/25 10:58:58
题目链接 由题意,直接进行区间加减 #include<bits/stdc++.h> using namespace std; typedef long long ll; struct node{ int l; int r; int k; bool operator<(const node x) { if(l==x.l) return r<x.r; return l< x.l; } }; vector<node> a; node nt; int num[105]; int n; int main() { // freopen("data.txt","r",stdin); while(~scanf("%d",&n)) { if(n==0) break; memset(num,0,sizeof(num)); fo 继续阅读 >>


楚东方 17/09/25 08:56:30
题目链接 会了组成原理,这就道水题 详见https://wenku.baidu.com/view/6ad6e27f76c66137ee061990.html #include<bits/stdc++.h> using namespace std; typedef long long ll; ll a[(1<<6)+1]; char s[100]; int main() { // freopen("data.txt","r",stdin); // ios_base::sync_with_stdio(false); ll ct=0,ct1=0; for(int i=0;i<(1<<6);i++) { a[i]=-1; } while(~scanf("%s",s)) { if(strcmp(s,"END")==0) break; ct++; int len=str 继续阅读 >>


楚东方 17/09/24 21:52:49
题目链接 几何加公式题,利用余弦定理求角的余弦值,进而求解 #include<bits/stdc++.h> using namespace std; typedef long long ll; const long double pi = acos(-1.0); long double R; int k,l; long double ans[11]; int main() { // freopen("data.txt","r",stdin); // ios_base::sync_with_stdio(false); cin >>l>>R; ans[1] = R/(sin(pi/3))-R; long double ra = cos(pi/3); long double a,b,c,x; for(int i=2;i<=10;i++) { a = ans[i-1]; x = (2*a*a+2*a*R-2*a*(a 继续阅读 >>


楚东方 17/09/24 21:44:30