gym-101243f

一个_小菜鸟 一个_小菜鸟     2022-09-08     212

关键词:

http://codeforces.com/gym/101243

题意:有三种药,是不同重量的三种药,但是不知道哪种是哪种,现在给你一些称量的结果,要你把这些药的种类区分出来

思路:最开始想的是并查集,但是一直没有想到怎么并,然后看了下别人的思路,就懂了。

当两个药的颜色一样的时候,并起来,然后颜色不同的时候,用一个两个数组分别记录一下,表示这两个药有差别,一个重,一个轻

然后之后分类,如果某个药既有比它重的,

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <iostream>
 4 #include <vector>
 5 using namespace std;
 6 
 7 vector<pair<int,int> >v;
 8 vector<int>s[1005];
 9 
10 int father[1005];
11 int down[1005],up[1005];
12 char ans[1005];
13 
14 int Find(int x)
15 {
16     if(father[x]!=x)
17         return father[x] = Find(father[x]);
18     return father[x];
19 }
20 
21 
22 void unio(int a,int b)
23 {
24     int root1 = Find(a);
25     int root2 = Find(b);
26     if(root1!=root2)
27         father[root1] = root2;
28 }
29 
30 int main()
31 {
32   //  freopen("input.txt","r",stdin);
33   // freopen("output.txt","w",stdout);
34     int m,n;
35     int a,b;
36     char c;
37     scanf("%d%d",&m,&n);
38     for(int i = 1;i<=m;i++)
39     {
40         father[i] = i;
41         ans[i]=?;
42     }
43     for(int i = 0;i<n;i++)
44     {
45         scanf("%d%c%d",&a,&c,&b);
46         if(c===)
47             unio(a,b);
48         else {
49             if(c==>)
50                 swap(a,b);
51             v.push_back(make_pair(a,b));
52         }
53     }
54     for(int i = 1;i<=m;i++)
55     {
56         Find(i);
57         s[Find(i)].push_back(i);
58     }
59     for(int i = 0;i<v.size();i++)
60     {
61         a = v[i].first;
62         b = v[i].second;
63         down[Find(a)]++;
64         up[Find(b)]++;
65     }
66     for(int i =1;i<=m;i++)
67     {
68         if(down[Find(i)]&&up[Find(i)])
69         {
70             for(int j = 0;j<s[Find(i)].size();j++)
71             {
72                 ans[s[Find(i)][j]] = R;
73             }
74             s[Find(i)].clear();
75         }
76     }
77     for(int i = 0;i<v.size();i++)
78     {
79         a = v[i].first;
80         b = v[i].second;
81         if(ans[a]==R){
82             for(int j = 0;j<s[Find(b)].size();j++)
83                 ans[s[Find(b)][j]] = W;
84             s[Find(b)].clear();
85         }else if(ans[b]==R){
86             for(int j = 0;j<s[Find(a)].size();j++)
87                 ans[s[Find(a)][j]]=B;
88             s[Find(a)].clear();
89         }
90     }
91     for(int i = 1;i<=m;i++)
92         printf("%c",ans[i]);
93     printf("
");
94     return 0;
95 }

 

又有比他轻的那么说明这个一定是中间的药,那么所有的这个颜色的药都可以找出来

然后重的轻的都可以通过这个中间的药比较出来

 

codeforcesgym101243acdefghj

gym101243A1#include<iostream>2#include<cstdio>3#include<cmath>4#include<cstring>5#include<algorithm>6#include<map>7#include<queue>8#include<stack>9#incl 查看详情

3.9

http://codeforces.com/gym/101243A题思路:一条鱼有两面,所以当N<=K时间是2倍的单位时间。否则的话应该是N*2/k向上取整。1#include<iostream>2#include<cstdio>3#include<cstring>4usingnamespacestd;56intmain()7{8freopen("inpu 查看详情

斐波那契数列性质

1.$F(1)+F(2)+F(3)+...+F(n)=F(n+2)-1$2.$F(1)^2+F(2)^2+F(3)^2+...+F(n)^2=F(n)F(n+1)$3.$F(1)+F(3)+F(5)+...+F(2n-1)=F(2n)$4.$F(2)+F(4)+F(6)+...+F(2n)=F(2n+1)-1$5.$F(n)=F(m)F(n-m+1)+F(m-1)F(n-m)$  $(n\gem) 查看详情

如何求解:f(n) = f(n-1) + 3*f(n-2) + 3*f(n-3) + f(n-4)

】如何求解:f(n)=f(n-1)+3*f(n-2)+3*f(n-3)+f(n-4)【英文标题】:howtosolve:f(n)=f(n-1)+3*f(n-2)+3*f(n-3)+f(n-4)【发布时间】:2014-11-0205:42:49【问题描述】:我该如何解决f(n)=f(n-1)+3*f(n-2)+3*f(n-3)+f(n-4)maximumvalueofn=10^18minimumis1initialconditionsar 查看详情

创建一个视图

CREATEORREPLACEVIEWJYDWZDASSELECTF_CODEASF_DWBH,F_STJCASF_DWMC,F_STMCASF_DWMCA,F_JS,F_MX,F_GSXZ,F_GSDM,F_LRZX,F_CODE,F_BKBH,F_BWB,F_NBBH,F_WLDW,F_ZJDW,F_ZJCODE,F_CWCCODE,F_ZJLX,F_KJZG,F_JYCH,F_RJLX,F_ 查看详情

斐波拉契数列的性质

证明用到辗转相除相减法定理一(gcd(f[i],f[i+1])=1)证明:(gcd(f[i],f[i+1])=gcd(f[i+1]-f[i],f[i])=gcd(f[i-1],f[i]))递归下去,所以(gcd(f[i],f[i+1])=gcd(f[1],f[2])=1)定理二(f[m+n]=f[m?1]f[n]+f[m]f[n+1])证明:(f[m+n]=f[m+n-1]+f[ 查看详情

德州仪器芯片tms320f240pqa解密难度

TMS320F28015TMS320LF2406TMS320F2812TMS320F28035TMS320F28026TMS320F28068TMS320F28031TMS320F28334TMS320F2806TMS320LF2407TMS320F28062TMS320F28023TMS320F28067TMS320F28332TMS320F2811TMS320F2802TMS320F28020TMS320F28022TMS320F28066TMS320F28033TMS320F28235TMS320F2801TMS320F28064TMS320F280200TMS320F2808TMS32... 查看详情

C语言中*f和(*f)的区别?

】C语言中*f和(*f)的区别?【英文标题】:Differencebetween*fand(*f)inC?【发布时间】:2016-02-1517:30:11【问题描述】:CppCheck(v1.72)表示使用(*f)或仅使用*f时会有所不同。本案voidtest(float*f)floata=0.0f;if(*f>a)(*f)+=0.01f;if(*f<a)*f=a;cppCheck说“... 查看详情

初识迭代

...典事例:斐波那契数列#include<iostream>usingnamespacestd;intf(intn)intf(1)=1,f(2)=1;f(n)=f(n-1)+f(n-2);returnf(n);intmain()cin>>n;cout<<f(n)<<endl;return0;所以,以上可知:例:f(5)=f(4)+f(3);f(4)=f(3)+f(2);f(3)=f(2)+f(1);==>f(5)=5;其他类似也可以用... 查看详情

斐波那契数列的公式是啥

斐波那契数列:1,1,2,3,5,8,13,21……如果设F(n)为该数列的第n项(n∈N+)。那么这句话可以写成如下形式:F(1)=F(2)=1,F(n)=F(n-1)+F(n-2)(n≥3)显然这是一个线性递推数列。通项公式的推导方法一:利用特征方程线性递推数列的特征... 查看详情

分析 _mm_setzero_ps 和 0.0f,0.0f,0.0f,0.0f

】分析_mm_setzero_ps和0.0f,0.0f,0.0f,0.0f【英文标题】:Profiling_mm_setzero_psand0.0f,0.0f,0.0f,0.0f分析_mm_setzero_ps和0.0f,0.0f,0.0f,0.0f【发布时间】:2016-12-2117:00:26【问题描述】:编辑:正如CodyGray在他的评论中指出的那样,禁用优化的分析完全... 查看详情

uniquebinarysearchtrees

 这里需要总结规律:f(0)=f(1)=1;f(2)=f(0)*f(1)+f(1)*f(0)f(3)=f(0)*f(2)+f(1)*f(1)+f(2)*f(0)classSolution{public:intnumTrees(intn){if(n==0)return1;if(n==1)return1;vector<int>num(n+1,0);num[0]=1;num[1]= 查看详情

题解cf450bjzzhuandsequences

...A的人(?)我来发布下这道大水题的题解了~首先题目给出了f[i]=f[i-1]+f[i+1],我们移下项:f[i+1]=f[i]-f[i-1],所以我们可以知道:第i项等于它前两项之差!即:f[i]=f[i-1]-f[i-2],同时,f[i-1]=f[i-2]-f[i-3],代入得:f[i]=-f[i-3]=f[i-6],所以我们只需将前... 查看详情

dx12纹理贴图(代码片段)

...插值即可求得GeometryGenerator::MeshDataGeometryGenerator::CreateBox(floatwidth,floatheight,floatdepth,uint32numSubdivisions)MeshDatameshData;// //Createthevertices. // Vertexv[24]; floatw2=0.5f*width; floath2=0.5f*height; floatd2=0.5f*depth; //Fillinthefrontfacevertexdata. v[0]=Vertex(-w2,-h2,... 查看详情

矩阵幂求解骨牌覆盖数(soj3021)(代码片段)

...,但是一直没有成功。后来看了网上别人给的递推式:$f(n)=f(n-1)+5*f(n-2)+f(n-3)-f(n-4)$,有了这个式子,这个题很好求解了。下面我介绍一种其他的方法。将矩形看作$N imes4$,铺骨牌到第$i$行有$6$种情况:$XXXX$,$XOOX$,$OXXO$,$XXOO$,$OOXX$,$OO... 查看详情

矩阵幂求解骨牌覆盖数(soj3021)(代码片段)

...,但是一直没有成功。后来看了网上别人给的递推式:$f(n)=f(n-1)+5*f(n-2)+f(n-3)-f(n-4)$,有了这个式子,这个题很好求解了。下面我介绍一种其他的方法。将矩形看作$N imes4$,铺骨牌到第$i$行有$6$种情况:$XXXX$,$XOOX$,$OXXO$,$XXOO$,$OOXX$,$OO... 查看详情

已知函数f(x)是定义在r上周期为6的奇函数,且f(x)=1则f(5)

你好题目是不是f(1)=1函数f(x)是定义在R上周期为6的奇函数则f(-1)=-f(1)=-1f(5)=f(6-1)=f(-1)=-1很高兴为您解答,祝你学习进步!有不明白的可以追问!如果有其他问题请另发或点击向我求助,答题不易,请谅解.如果您认可我的回答,... 查看详情

图像处理

...Gui::GetStyle();style.Colors[ImGuiCol_Text]=ImVec4(0.90f,0.90f,0.90f,1.00f);style.Colors[ImGuiCol_TextDisabled]=ImVec4(0.60f,0.60f,0.60f,1.00f);style.Colors[ImGuiCol_WindowBg]=ImVec4(0.00f,0.00f,0.00f,0.70f);style.Colors[ImGuiCol_ChildWindo... 查看详情