集训队寒假集训第二场补题题解

补题什么的待填坑。。。

A - Generous Kefa (语法基础)

直接开桶看看有没有超过三个的,因为题目明确提出没有气球也是可以的

代码

#include <bits/stdc++.h>
using namespace std;
int bk[123213];
int main()
{
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n,k;
  cin>>n>>k;
  string a;
  cin>>a;
  for(int i=0;i<a.size();i++)
  {
    bk[a[i]]++;
    if(bk[a[i]]>k)
    return cout<<"NO",0;
  }
  cout<<"YES";
}

B - Godsend(思维)

如果存在一个奇数的话那么第一个就赢否则第二个赢

因为第一个先选如果有奇数且都是奇数那么第一个肯定赢

否则第一个肯定要把所有的偶数选上外加奇数这样凑成奇数

那么如果剩余奇数个奇数他可以全部选上外加偶数那么就是最初的第一种情况

如果剩余偶数个奇数那么选择剩余奇数-1个奇数加上全部偶数这样还是第一个赢

综上所述只要有奇数就是第一个赢

代码

#include <bits/stdc++.h>
using namespace std;
int main()
{
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin>>n;
  for(int i=0;i<n;i++)
  {
    int t;
    cin>>t;
    if(t%2!=0)
    return cout<<"First",0;
  }
  cout<<"Second";
}

F - New Year and Days (思维)

实际上月份的那个好说就是周的那个得看看首先得算一算

实际上就是用ceil(剩余的天数/第一个日期)

当然你也可以看看日历告诉你4有52个那么看一月第一个星期是5开头12月最后一个星期是星期六结尾那么5 6就是53 1 2 3 4 7就是52也可以

最不行的方法你也可以直接去数啊- -

代码

#include <bits/stdc++.h>
using namespace std;
int bk[123213];
int main()
{
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n;
  string a,b;
  cin>>n>>a>>b;
  if(b=="week")
  {
    if(n==5||n==6)
    cout<<53;
    else if(n>=1&&n<=4)
    cout<<52;
    else if(n==7)
    cout<<52;
  }
  else if(b=="month")
  {
    if(n<=29)
    cout<<12;
    else if(n==30)
    cout<<11;
    else if(n==31)
    cout<<7;
  }
}

H - New Year and Old Property(位运算)

第二个数的二进制的长度肯定大于等于第一个数二进制的长度

所以我们用位运算去枚举这两个长度之间到底有多少个只包含0的二进制且这个二进制的十进制在这两个数的闭区间内

那么也就是ans=(1<<i)-1-(1<<j)

i in range(len1,len2+1)

j in range(0,i-1)

上面都是python的写法range是一个左闭右开区间

最后看ans在不在两个给定的数的闭区间内即可如果在那么答案+1,最后输出答案

代码

a,b=map(int,input().split())
c=bin(a)[2:]
d=bin(b)[2:]
t1=len(c)
t2=len(d)
ans=0
for i in range(t1,t2+1):
    for j in range(0,i-1):
        if ((1<<(i))-1-(1<<j)) in range(a,b+1):
            ans+=1
print(ans)

原文地址:https://www.cnblogs.com/baccano-acmer/p/10293714.html

时间: 2024-10-04 10:34:22

集训队寒假集训第二场补题题解的相关文章

寒假集训第二场

整理人:贺振原 A - Generous Kefa (1) 马鸿儒 (2) 朱远迪 B - Godsend (1) 马鸿儒 (2) 朱远迪 C - Leha and Function D - Leha and another game about graph E - New Year and Ancient Prophecy F - New Year and Days (1) 马鸿儒 (2) 朱远迪 G - New Year and Domino H - New Year and Old Pro

2017年校招全国统一模拟笔试(第二场)编程题集合-牛客网

 2017年校招全国统一模拟笔试(第二场)编程题集合-牛客网 链接:https://www.nowcoder.com/questionTerminal/276712b113c6456c8cf31c5073a4f9d7来源:牛客网 牛牛有两个字符串(可能包含空格),牛牛想找出其中最长的公共连续子串,希望你能帮助他,并输出其长度. 输入描述: 输入为两行字符串(可能包含空格),长度均小于等于50. 输出描述: 输出为一个整数,表示最长公共连续子串的长度. 输入例子: abcde abgde 输出例子

2019 hdu 第四场补题 (1 ,签到题

因为太菜了,前几场的题都没补,从今天开始慢慢补 以后晚上要早睡,早上早起,抽出时间看书,每天只肝一局杀戮尖塔,上床不玩手机 每周五把一周总结的板子打印下来,毕竟老年人记性 补题顺序按难度升序 1001 AND Minimum Spanning Tree 题意:定义边的权值为两结点的&和,构造字典序最小的最小生成树 分析: 1.构造型算法 2.二进制数字默认有前导0,在纸上随便画画就发现构造将相邻点最低位0置为1,其余位为0为最优解,如果范围不够则直接置为1 题解: 1001. AND Minim

2018-2019赛季多校联合新生训练赛第六场(2018/12/15)补题题解

A 价钱统计(基础编程能力) 这个考点还是比较个性的,怎么四舍五入 解法 常规的讲如果四舍五入整数位的话,那么只需要在后面加个0.5然后强制转换一下就可以了 这个却要我们保留一位小数的四舍五入,那该怎么做呢 实际上我们只需要把这个数乘以10然后加0.5,强制转换后再除以10就可以了 代码 #include <bits/stdc++.h> using namespace std; double trans(double a) { a*=10; a+=0.5; a=int(a); a/=10; r

OCAC暑期比赛第二场 B题 日常浇花 题解

日常浇花原题链接:http://codeforces.com/problemset/problem/149/A[题目描述]2018年12月31号晚,当聪聪的父母给阳台上的花浇完水之后,这对夫妻准备去南极看极光,并且在2020年1月1号的早上再回家.他们留下了聪聪一个人在家,并且给聪聪布置了一项任务:浇花!聪聪知道,在第i个月,如果它坚持给花每天早上.中午.晚上各浇一次水,那么在月底的时候这朵花就会长高ai厘米:如果在第i个月,聪聪没有坚持做到这一点的话(比如哪天早上睡过头了),月底的时候这朵花就

2018-2019赛季多校联合新生训练赛第八场(2018/12/22)补题题解

感慨 这次有点感冒,昏迷程度比较大中途还溜了 感谢 感谢qut的同学的帮助!!! A 小X与三角形(数学) 公式 两边的和-两边的差-1 因为边最小得大于两边的差,边最大得小于两边的和所以说求得是一个开区间内元素的个数 代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll a,

OCAC暑期比赛第二场 C题 瑶瑶2356 题解

瑶瑶2356原题链接:http://codeforces.com/problemset/problem/734/B[题目描述]最近瑶瑶在房间里面发现了一个神秘的盒子.她打开盒子,发现里面存放了若干张卡片,每张卡片上面都有一个数字.瑶瑶输了一下,卡片上面的数字只有4种数值:2,3,5,6.并且,她统计了一下,一共有k2张数值为2的卡片,有k3张数值为3的卡片,有k5张数值为5的卡片,有k6张数值为6的卡片.瑶瑶最喜欢的数字是 32 和 256.所以它发现可以用这些卡片拼成数字 32 或者 256.

寒假集训第二天---最小生成树题解

CodeForces - 606D Lazy Student 传送门 题目大意:m条边,每条边给权值和是否在最小生成树里,问能否构造出一个图满足边 思路:排序,对可行的边与1相连,对于不可行的边其它已连结点相连,直到连完或者不满足条件 卡点:对于权值相同的边,在最小生成树里的边的优先级较高 代?? #include <iostream> #include <cstdio> #include <algorithm> #include <vector> usin

Contest1592 - 2018-2019赛季多校联合新生训练赛第二场(部分题解)

D 10248 修建高楼 D 传送门 题干 题目描述 C 市有一条东西走向的"市河".C 市的市长打算在"市河"的其中一条岸边自东往西的 n 个位置(可以将这 n 个位置看成在一条直线上,且位置不会重叠)依次建造高楼. C 市的设计部门设计了 T 个方案供市长挑选(方案编号为 1 到 T).每个方案都提供了建造的每幢高楼的高度,自东向西依次为 h1,h2,h3,-,hn-1,hn.每幢楼房的高度在 1 到 n 之间(包括 1 和 n),且各不相同. 市长在挑选设计方