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;
}