视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
CodeforcesRound#253(Div.1)-A,B_html/css
2020-11-27 15:53:55 责编:小采
文档


A题:

由题意可知,最多翻10次就可以(其实8次就够了),那么我们就用状态压缩表示状态。

对于某种状态,如果某一位为0,那么代表这一位不翻,否则代表这一位翻。

对于某一种翻的状态:

如果牌中有G3,那么就把G和3进行连边。其他的连边类似,不要重边。

对于任意一条边的两个端点,分三种情况讨论:

1,两个端点都翻了,那么很明显,这张牌被表示出来了。

2,两个端点中只有一个端点被翻,那么这个对应的num加1.

3,两个端点都没有被翻,计数器tt加1。

对于任意一种状态:

1,如果计数器tt大于1,那么肯定不能判断出所有的牌。

2,如果任意一个端点的num数大于1,那么也肯定不能判断出所有的牌。

3,否则的话,这种状态可以表示出所有的牌。

#include#include#include#include#includeusing namespace std;#define LL __int#define maxn 2201int num[20];int pan[220];int name[22001];vectorvec;int map[110][110];void dos(int x){ while(x) { cout<=minn)continue; int leap=0; int t=0; memset(num,0,sizeof(num)); for(int j=5; j<10; j++) { for(int i=0; i<5; i++) { if(map[i][j]) { if((st&(1<B题: 

对于当前选择的状态,

p0表示0个人告诉答案的概率。

p1表示1个人告诉答案的概率。

对于即将面对的一个人:

a表示0个人告诉答案的概率。

b表示1个人告诉答案的概率。

如果接纳这个人之后,p1的值变小了,那么就不应该接纳下去。
#include#include#include#include#includeusing namespace std;#define LL __int#define maxn 2201double num[maxn];int main(){ int n; double x; while(~scanf("%d",&n)) { for(int i=1;i<=n;i++) { scanf("%lf",&num[i]); } sort(num+1,num+n+1); double ans=0; double a=1; double c,d; double b=0; for(int i=n;i>=1;i--) { c=a; d=b; b=b+a*num[i]-b*num[i]; a=a-a*num[i]; if(b 




下载本文
显示全文
专题