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

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

谜题

时间限制: 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. 一款代码扫描工具 火线!!!! fireline

    1. 在火线官网进行火线相关文件的下载,下载后的文件为fireline.jar 2.运行fireline.jar文件前请先确认系统环境中已安装Java JDK.   java-version 查看 3 ...

  2. sed修炼系列(一):花拳绣腿之入门篇

    本文为花拳绣腿招式入门篇,主要目的是入门,为看懂sed修炼系列(二):武功心法做准备.虽然是入门篇,只介绍了基本工作机制以及一些选项和命令,但其中仍然包括了很多sed的工作机制细节.对比网上各sed相 ...

  3. 浅析SQL Server在可序列化隔离级别下,防止幻读的范围锁的锁定问题

    本文出处:http://www.cnblogs.com/wy123/p/7501261.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  4. mysql:ip地址连接

    2. 为用户授权 授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 2.1登录MYSQL(有ROOT权限),这里以ROO ...

  5. 使用CXF开发JAX-RS类型的WebService

    1.JAXRSServerFactoryBean编程方式 访问方式:http://localhost:8080/cxf_spring_rest_server/ws/rest/student/query ...

  6. webservice时间类型XMLGregorianCalendar和Date的转换

    //ISO日期转换为UTC日期 public XMLGregorianCalendar xmlToDate(Date date){ GregorianCalendar cal = new Gregor ...

  7. ASP.NET Core的身份认证框架IdentityServer4(8)- 使用密码认证方式控制API访问

    前言 本文及IdentityServer这个系列使用的都是基于.net core 2.0的.上一篇博文在API项目中我使用了icrosoft.AspNetCore.Authentication.Jwt ...

  8. CGI + FastCGI(PHP-FPM)联系和区别的图解 + 注释

    一.背景 参考了几篇文章,总结成图解 + 注释方便以后查阅. 参考资料: 1.https://www.zhihu.com/question/19582041 2.https://segmentfaul ...

  9. ueditor ie8兼容性问题

    ie8情况下,在进入加载有uEditor编辑器页面时候,不显示工具栏,会提示ueditor 缺少对象或者出现错误   1.引用Ueditor的js 的时候用 绝对路径       网上搜出来的一种解决 ...

  10. 前端AES的加密和解密

    在工作的过程中,经常要对一些数据做一些加密,当然有复杂的加密和简单的加密,也有对称加密等等.总之加密的方式有很多.今天在这里,我只是简单的分享一个我最近遇到的加密方式-AES.这个也是后端工程师用的, ...