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

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

谜题

时间限制: 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. Flink JobManager HA模式部署(基于Standalone)

    参考文章:https://ci.apache.org/projects/flink/flink-docs-release-1.3/setup/jobmanager_high_availability. ...

  2. if __name__ == '__main__' 到底是何方神圣(转)

    想必很多初次接触python都会见到这样一个语句,if __name__ == "__main__": 那么这个语句到底是做什么用的呢?在解释之前,首先要声明的是,不管你是多么小白 ...

  3. TC358743XBG:HDMI转MIPI CSI参考设计

    TC358743XBG参考设计电路图如下, 功能HDMI转MIPI CSI ,通信方式:IIC,分辨率1920*1080,封装形式BGA64.

  4. SpringMVC入门第二天

    SpringMVC第二天 1.   回顾 1.Springmvc介绍? Springmvc是Spring公司 2.Springmvc入门程序 第一步:Web工程 第二步:导Jar包 第三步:web.x ...

  5. C# 异步编程2 EAP 异步程序开发

    在前面一篇博文记录了C# APM异步编程的知识,今天再来分享一下EAP(基于事件的异步编程模式)异步编程的知识.后面会继续奉上TPL任务并行库的知识,喜欢的朋友请持续关注哦. EAP异步编程算是C#对 ...

  6. python中字符串中一些函数的用法

    1..capitalize():字符串的首字母大写: 2..count():字符串中的某个字母的个数: 3..center(50,'-'):对象居中,且左右用'-'补齐: 4..encode():吧字 ...

  7. my new day in CNblog

    感谢大家 今天正式在博客园平台开启我的第三个技术面博客 之前一直坚持在csdn平台撰文(http://blog.csdn.net/github_38885296)欢迎参观:) 因为觉得博客园知名度虽不 ...

  8. 团队作业8——Beta项目(冲刺计划)

    Beta阶段冲刺计划 经过几周的努力我们完成了Alpha的开发,进过一段时间的调整与重组我们继续向Beta版进发. 1. 新成员介绍 林乔桦(201421123074):掌握c语言,JavaScrip ...

  9. 团队作业1--团队展示&选题(SNS)

    团队名称 SNS  (SAME is Not Simple,期待和而不同.共同进步) MEMBER 201421123037(captain) 201421123032 201421123034 20 ...

  10. 201521123039《java程序设计》第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句 ...