三道比较简单的题,还以为是八校考试的题目,但是并不是,无语了,第三题其实看了挺久的,一看到图,就想到了二分图,网络流之类的算法,但是尽力往这个方向想了好久都没什么思路,

最后从简单入手,然而没什么结果,第一题是真的水,一推就知道了。

谜题

时间限制: 1 Sec  内存限制: 128 MB
提交: 90  解决: 47
[提交][状态][讨论版]

题目描述

输入

一行一个数字N(N<=99)

输出

如果能,输出“YES”;否则输出“XLSB”;

样例输入

3

样例输出

YES

提示

【数据规模】
对于10%的数据,N<=1;
对于20%的数据,N<=3;
对于50%的数据,N<=4;
对于100%的数据1<=N<=99;
 #include<cstdio>
 #include<algorithm>
 #include<cmath>
 #include<iostream>
 #include<iostream>
 using namespace std;

 int n;

 int main()
 {
     scanf("%d",&n);
     ) printf("YES\n");
     else printf("XLSB\n");
 }

题意什么的不要了

选修课

时间限制: 1 Sec  内存限制: 128 MB
提交: 172  解决: 61
[提交][状态][讨论版]

题目描述

温州中学开放了许多选修课,每节选修课都属于一种种类。精力旺盛的黄小龙同学想要尽可能多的参加选修课,但是他只能选择M种种类的课程。当然,对于他所选的种类,他会去上所有该种类的课。现在他想知道他最多能上几节选修课,以及上最多选修课的方案数。
两种方案被认为不同当且仅当一种方案中存在另一种方案所没有的选修课。

输入

第一行一个只由小写字母组成,长度为N的字符串。表示有N节选修课,以及每节选修课的种类。
第二行一个正整数M。

输出

输出一行,两个用空格隔开的正整数,分别表示最多选修课数量和方案数。

样例输入

abcde
1
ababac
2

样例输出

1 5
5 1

提示

【数据规模】
对于30%的数据,M==1;
对于另外30%的数据,每种种类的选修课最多只有一节;
对于100%的数据1<=M<=26、1<=N<=100000;
 
暴力求个组合数就可以了,源代码快拍打错了,然后求组合数的时候有个优化就是C(20,2)=C(20,18)可以通过这个少乘,然后LL就可以过了。
 #include<cstring>
 #include<algorithm>
 #include<iostream>
 #include<cmath>
 #include<cstdio>
 using namespace std;

 int n;
 ]={};
 ];

 bool cmp(int x,int y){return x>y;}
 long long C(int m,int n)
 {
     ;
     ;i<=m;i++)
         res=(long long)(res*i);
     ;i<=n;i++)
         res=(long long)(res/i);
     return res;
 }
 int main()
 {
     scanf("%s%d",s,&n);
     int len=strlen(s);
     ;i<len;i++)
         a[s[i]-]++;
     sort(a+,a++,cmp);
     ;
     ;i<=n;i++)
         res+=a[i];
     printf("%lld ",res);
     int l=n,r=n;
     &&a[l]==a[n]) l--;
     l++;
     &&a[r]==a[n]) r++;
     r--;
     long long ans;
     ans=C(r-l+,min(n-l+,r-n));
     printf("%lld\n",ans);
 }

满分代码

质数

时间限制: 1 Sec  内存限制: 128 MB
提交: 106  解决: 20
[提交][状态][讨论版]

题目描述

 

宿管有一套神奇的控制系统来控制寝室的灯的开关:

共有N盏灯,标号为1到N,有M个标有不同质数的开关,开关可以控制所有标号为其标号倍数的灯,按一次开关,所有其控制的灭着的灯都点亮,所有其控制的亮着的灯将熄灭。现在,宿管可以无限的按所有开关,所有灯初始状态为熄灭,请求出最多能点亮几盏灯。

输入

输入有多组数据,第一行一个正整数T表示数据组数。
每组数据第一行两个整数N,M。
第二行M个不同的质数表示开关上的标号,保证所有标号<=N。

输出

对于每组数据输出一行一个整数表示最多亮灯数。

样例输入

4
10 2
2 5
21 4
2 3 5 7
100 1
5
100 3
3 19 7

样例输出

5
11
20
42

提示

【数据范围】
对于50%的数据,N<=15;
对于100%的数据,T<=10,N<=1000。

这道题就是求√n以内的质数,这样比√n大的质数两两之间已经超过了n因此不会相互影响,可以发信啊每个开关只开一次是有意义的,多开没意义。

 #include<cstdio>
 #include<algorithm>
 #include<cmath>
 #include<iostream>
 #include<cstring>
 #include<queue>
 using namespace std;

 ,NN=;

 int n,m,ans,k;
 int boo[NN],prime[NN];

 bool cmp(int x,int y){return x<y;}
 void dfs(int ci)
 {
     if (ci==k)
     {
         ,num;
         queue<int>q;
         while(!q.empty()) q.pop();
         ;i<=m;i++)
         {
             num=;
             for (int j=prime[i];j<=n;j+=prime[i])
                 ) num++;
                 else num--;
             )
             {
                 q.push(i);
                 for (int j=prime[i];j<=n;j+=prime[i])
                     boo[j]^=;
             }
         }
         ;i<=n;i++)
             if (boo[i]) x++;
         ans=max(ans,x);
         while (!q.empty())
         {
             int i=q.front();
             q.pop();
             for (int j=prime[i];j<=n;j+=prime[i])
                 boo[j]^=;
         }
     }
     else
     {
         ci++;
         dfs(ci);
         for (int i=prime[ci];i<=n;i+=prime[ci])
             boo[i]^=;
         dfs(ci);
         for (int i=prime[ci];i<=n;i+=prime[ci])
             boo[i]^=;
     }
 }
 void solve()
 {
     ans=-INF;
     memset(boo,,sizeof(boo));
     dfs();
     printf("%d\n",ans);
 }
 int main()
 {
     int Cas;
     scanf("%d",&Cas);
     while (Cas--)
     {
         scanf("%d%d",&n,&m);
         ;i<=m;i++)
             scanf("%d",&prime[i]);
         sort(prime+,prime+m+,cmp);
         k=m;
         while (prime[k]>(int)sqrt(n)) k--;
         solve();
     }
 }

NOIP2017SummerTraining0726的更多相关文章

随机推荐

  1. Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触

    前言:在Remoting中处理事件其实并不复杂,但其中有些技巧需要你去挖掘出来.正是这些技巧,仿佛森严的壁垒,让许多人望而生畏,或者是不知所谓,最后放弃了事件在Remoting的使用.关于这个主题,在 ...

  2. WCF(二)三种通信模式

    WCF在通信过程中有三种模式:请求与答复.单向.双工通信 请求与答复模式 客户端发送请求,然后一直等待服务端的响应答复(异步调用除外),期间处于假死状态,直到服务端有了答复后才能继续执行其他程序 请求 ...

  3. 一,ESP8266下载和刷固件

    用自己的小板测试...... 安排上呢 一, ESP8266下载和刷固件(Lua开发----体验一下lua开发的魅力所在) 二, 控制一个灯亮灭 三, TCP服务器 四, TCP客户端 五, UDP ...

  4. 日期时间范围选择插件:daterangepicker使用总结

    分享说明: 项目中要使用日期时间范围选择对数据进行筛选;精确到年月日 时分秒;起初,使用了layui的时间日期选择插件;但是在IIE8第一次点击会报设置格式错误;研究了很久没解决,但能确定不是layu ...

  5. Netty自娱自乐之类Dubbo RPC 框架设计构想 【上篇】

    之前在前一篇的<Netty自娱自乐之协议栈设计>,菜鸟我已经自娱自乐了设计协议栈,gitHub地址为https://github.com/vOoT/ncustomer-protocal.先 ...

  6. [js高手之路]Vue2.0基于vue-cli+webpack Vuex用法详解

    在这之前,我已经分享过组件与组件的通信机制以及父子组件之间的通信机制,而我们的vuex就是为了解决组件通信问题的 vuex是什么东东呢? 组件通信的本质其实就是在组件之间传递数据或组件的状态(这里将数 ...

  7. Android学习记录:ViewPager实现欢迎页

    许多APP在第一次启动的时候,都会有welcome page.近日尝试利用ViewPager来实现Welcome Page. d0711 完成记录,跟新下载地址 =================== ...

  8. C# 委托、匿名方法、lambda简介

    在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆.我想下面的代码能证实这点.下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=5.答案是6个First不 ...

  9. SNS团队Beta阶段第二次站立会议(2017.05.23)

    1.立会照片 2.每个人的工作 每个成员的分工: 成员 今天已完成的工作 明天计划完成的工作 罗于婕 完善代码规范文档 辅助完善生词本 龚晓婷 界面优化  辅助开发新功能 林仕庄 界面图标不对齐bug ...

  10. 201521123063 《Java程序设计》 第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前 ...