Problem B Sub-Bipartite Graph Foj 2141
题意:给定n个点 m条无向边的无向图
求一个 至少包含m条边的同构子图 且是二分图
输出二分图的 X点集 和 Y点集
详细题解
------------------------------------------------------------------------------------
Problem C Center of treeFoj 2142
详细题解
------------------------------------------------------------------------------------
Problem D Board Game Foj 2143
详细题解
-------------------------------------------------------------------------------------
Problem F Rock-Paper-Scissors GameFoj 2145
详细题解
--------------------------------------------------------------------------------
Problem G Easy Game Foj 2146
判断字符串长度的奇偶
#include<stdio.h> #include<string.h> int main(){ int T,Cas= 1;scanf("%d",&T); while(T--){ char s[10086];scanf("%s",s); printf("Case %d: ",Cas++); strlen(s)&1 ? puts("Odd"): puts("Even"); } return 0; }
----------------------------------------------------------------------------------------------
Problem H A-B Game Foj 2147
贪心
#include<iostream> #include<stdio.h> #include<string.h> using namespace std; typedef long long ll; int main() { ll i,j,k,m,n,a,b; ll T,t; scanf("%lld",&T); for(t=1;t<=T;t++) { scanf("%lld%lld",&a,&b); ll ans=0; while(a>b) { if(a%2)a=(a+1)/2; else a=a/2+1; ans++; } printf("Case %lld: ",t); if(ans<1)ans = 1; printf("%lld\n",ans); } return 0; }
----------------------------------------------------------------------------------------------
Problem I Moon Game Foj2148
求给定的二维坐标能构成的凸四边形数
我们可以得到一个结论:
当且仅当四边形为凸四边形时,对角线能相交
详细题解
----------------------------------------------------------------------------------------------
Problem J Reverse GameFoj 2149
详细题解
---------------------------------------------------------------------------------------------
Problem K Fire Game Foj 2150
题意:
给定一个平面图 . 为空地(不着火) # 为草
开始可以选1-2个草堆点燃,每隔一秒会把上下左右的草引燃(开始时间为0秒)
问把所有草烧光的最少时间
详细题解
----------------------------------------------------------------------------------------------
Problem L OOXX Game Foj 2151
求图中O的奇偶数
#include<stdio.h> #include<string.h> int main(){ int T,Cas= 1;scanf("%d",&T); while(T--){ int n, m;scanf("%d %d",&n,&m); int ans = 0; while(n--){ char s[200];scanf("%s",s); for(int i =0;i<m;i++) ans += s[i] == 'O'; } printf("Case %d: ",Cas++); ans&1 ? puts("Maze"): puts("Fat brother"); } return 0; }