珠心算测验

模拟。

将所有“两个不同数之和”装进桶里,扫描原数组记录满足条件的数的个数。

  1. /*by SilverN*/
  2. #include<iostream>
  3. #include<algorithm>
  4. #include<cstring>
  5. #include<cstdio>
  6. #include<cmath>
  7. using namespace std;
  8. const int mxn=;
  9. int read(){
  10. int x=,f=;char ch=getchar();
  11. while(ch<'' || ch>''){if(ch=='-')f=-;ch=getchar();}
  12. while(ch>='' && ch<=''){x=x*+ch-'';ch=getchar();}
  13. return x*f;
  14. }
  15. int n;
  16. int a[mxn];
  17. int cnt[mxn];
  18. int main(){
  19. int i,j;
  20. n=read();
  21. for(i=;i<=n;i++){
  22. a[i]=read();
  23. }
  24. for(i=;i<n;i++)
  25. for(j=i+;j<=n;j++){
  26. cnt[a[i]+a[j]]++;
  27. }
  28. int res=;
  29. for(i=;i<=n;i++){
  30. if(cnt[a[i]])res++;
  31. }
  32. cout<<res<<endl;
  33. return ;
  34. }

珠心算测验

比例简化

暴力。

因为L<=100,所以分子和分母都从1循环到100,暴力判断即可。

  1. /*by SilverN*/
  2. #include<iostream>
  3. #include<algorithm>
  4. #include<cstring>
  5. #include<cstdio>
  6. #include<cmath>
  7. using namespace std;
  8. int read(){
  9. int x=,f=;char ch=getchar();
  10. while(ch<'' || ch>''){if(ch=='-')f=-;ch=getchar();}
  11. while(ch>='' && ch<=''){x=x*+ch-'';ch=getchar();}
  12. return x*f;
  13. }
  14. int gcd(int a,int b){
  15. if(!b)return a;
  16. return gcd(b,a%b);
  17. }
  18. int a,b,L;
  19. int ra=,rb=;
  20. int main(){
  21. int i,j;
  22. a=read();b=read();L=read();
  23. for(i=;i<=L;i++)
  24. for(j=;j<=L;j++){
  25. if(gcd(i,j)!=)continue;
  26. if(i*b>=j*a && i*rb<j*ra){
  27. ra=i;
  28. rb=j;
  29. }
  30. }
  31. printf("%d %d\n",ra,rb);
  32. return ;
  33. }

比例简化

螺旋矩阵

O(n^2)循环会超时。

可以计算出最外围一圈数的个数,每次拆掉一圈数,到了目标数所在的圈再暴力查找。

  1. /*by SilverN*/
  2. #include<algorithm>
  3. #include<iostream>
  4. #include<cstring>
  5. #include<cstdio>
  6. #include<cmath>
  7. #include<vector>
  8. using namespace std;
  9. int n;
  10. int main(){
  11. int i,j;
  12. cin>>n>>i>>j;
  13. long long ans=;
  14. int eg=min(min(n-i,i-),min(n-j,j-));
  15. for(int k=;k<eg;++k)ans+=(n-*k)*-;
  16. i-=eg;j-=eg;n-=*eg;
  17. if(i==)ans+=j;
  18. else if(i==n)ans+=*(n-)+n-j+;
  19. else if(j==)ans+=*(n-)+n-i+;
  20. else if(j==n)ans+=n-+i;
  21. printf("%d\n",ans);
  22. return ;
  23. }

螺旋矩阵

子矩阵

暴力DFS选择的行,然后在所选行上DP。

DP时需要前缀和优化。

  1. /*by SilverN*/
  2. #include<algorithm>
  3. #include<iostream>
  4. #include<cstring>
  5. #include<cstdio>
  6. #include<cmath>
  7. #include<vector>
  8. using namespace std;
  9. int read(){
  10. int x=,f=;char ch=getchar();
  11. while(ch<'' || ch>''){if(ch=='-')f=-;ch=getchar();}
  12. while(ch>='' && ch<=''){x=x*+ch-'';ch=getchar();}
  13. return x*f;
  14. }
  15. int f[][];
  16. int n,m,r,c;
  17. int mp[][];
  18. int ans=1e9;
  19. //bool vis[17];
  20. int use[];
  21. int ds[];//行之间的差值
  22. int cs[][];//列之间的差值
  23. void DP(){
  24. memset(cs,,sizeof cs);
  25. memset(ds,,sizeof ds);
  26. memset(f,0x3f,sizeof f);
  27. int i,j;
  28. for(i=;i<m;i++)
  29. for(j=i+;j<=m;j++){
  30. for(int k=;k<=r;k++){
  31. cs[i][j]+=abs(mp[use[k]][j]-mp[use[k]][i]);
  32. }
  33. }
  34. for(i=;i<=m;i++)
  35. for(j=;j<=r;j++){
  36. ds[i]+=abs(mp[use[j]][i]-mp[use[j-]][i]);
  37. }
  38. //init
  39. // for(i=1;i<=m;i++)
  40.  
  41. //
  42. memset(f[],,sizeof f[]);
  43. for(i=;i<=c;i++){
  44. for(j=i;j<=m;j++){
  45. for(int k=;k<j;k++){
  46. f[i][j]=min(f[i][j],f[i-][k]+cs[k][j]);
  47. }
  48. f[i][j]+=ds[j];
  49. }
  50. }
  51. int res=1e9;
  52. for(i=c;i<=m;i++)res=min(res,f[c][i]);
  53. // printf("res:%d\n",res);
  54. ans=min(ans,res);
  55. // printf("%d\n",ans);
  56. return;
  57. }
  58.  
  59. void DFS(int dep,int pos){
  60. if(dep>r){
  61. /* printf("use:");
  62. for(int i=1;i<=r;i++)printf("%d ",use[i]);
  63. printf("\n");*/
  64. DP();return;
  65. }
  66. int lim=n-(r-dep);
  67. for(int i=pos;i<=lim;i++){
  68. use[dep]=i;
  69. DFS(dep+,i+);
  70. }
  71. return;
  72. }
  73. int main(){
  74. int i,j;
  75. n=read();m=read();r=read();c=read();
  76. for(i=;i<=n;i++)
  77. for(j=;j<=m;j++)
  78. mp[i][j]=read();
  79. DFS(,);
  80. // use[1]=4;use[2]=5;DP();
  81.  
  82. printf("%d\n",ans);
  83. return ;
  84. }

子矩阵

[NOIP2014] 普及组的更多相关文章

  1. 【NOIP2014 普及组】螺旋矩阵

    [NOIP2014 普及组]螺旋矩阵 一.题目 [NOIP2014 普及组]螺旋矩阵 时间限制: 1 Sec  内存限制: 128 MB 提交: 18  解决: 0 [提交][状态][讨论版] 题目描 ...

  2. noip2014普及组——珠心算测验

    题目描述 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术.珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及.    某学校的珠心算老师采用一种快速考察珠 ...

  3. 螺旋矩阵 noip2014普及组

    本题可以直接模拟填数字,也可以直接计算结果. 代码一:(这个代码,缺陷在于数组太大,浪费内存啊.另外,循环次数也不少.总之,时间空间的消耗都不小.) /*======================= ...

  4. noip2014普及组 比例简化

    题目描述 在社交媒体上,经常会看到针对某一个观点同意与否的民意调查以及结果.例如,对某一观点表示支持的有1498 人,反对的有 902人,那么赞同与反对的比例可以简单的记为1498:902. 不过,如 ...

  5. [NOIP2014普及组]子矩阵

    题目:洛谷P2258.Vijos P1914.codevs 3904. 题目大意:给你一个矩阵,要你找一个r行c列的子矩阵,求最小分值(子矩阵和分值的定义见原题). 解题思路:n和m比较小,考虑暴力. ...

  6. [NOIP2014普及组T1]珠心算测验 - NTT

    求数组有多少个数,恰好等于集合中另外两个(不同的)数之和? 注意到数集比较小,而且涉及到下标的加法,可以很自然地想到卷积 注意减去自己加自己的贡献 真是一道NTT练手好题 #include <i ...

  7. [NOIP2014] 提高组 洛谷P2038 无线网络发射器选址

    题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129 条东西向街道和129 条南北向街道所形成的网格状,并且相邻 ...

  8. NOIP2002-2017普及组题解

    虽然普及组一般都是暴力省一,但是有一些题目还是挺难的qwq个人觉得能进TG的题目会在前面打上'*' NOIP2002(clear) #include<bits/stdc++.h> usin ...

  9. NOIP2012 普及组 T3 摆花——S.B.S.

    题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...

随机推荐

  1. [转]终于找到全annotation配置springMVC的方法了(事务不失效)

    原文:http://icanfly.iteye.com/blog/778401 icanfly 写道 如果带上事务,那么用annotation方式的事务注解和bean配置,事务会失效,要将servic ...

  2. (转)DataMatrix编码2——伽罗华域运算

    原文出处:http://blog.sina.com.cn/s/blog_4572df4e01019wsj.html 伽罗华域即有限域,RS编码在此域中进行运算,故不得不对其有所了解.DataMatri ...

  3. JAVA_HOME环境变量失效的解决办法

    晚上把oracle自带的weblogic给卸载了,然后打开eclipse,发现报错了:Error: could not open `C:\Java\jre7\lib\amd64\jvm.cfg' JA ...

  4. Java7并发编程实战(一) 守护线程的创建和运行

    Java里有一种特殊的线程叫做守护(Daemon)线程,这种线程的优先级很低,通常来说,当一个应用程序里面没有其他线程运行的时候,守护线程才运行,当线程是程序中唯一运行的线程时,守护线程执行结束后,J ...

  5. 2015-2016-2 《Java程序设计》 游戏化

    2015-2016-2 <Java程序设计> 游戏化 实践「<程序设计教学法--以Java程序设计为例>」中的「游戏化(Gamification)理论」,根据 2015-201 ...

  6. Jenkins进阶系列之——18Jenkins语言本地化

    在Jenkins中,英语一大片,看着各种蛋疼.非常高兴的是,Jenkins作为一个主流流行的持续构建工具,提供了一个本地化语言的配置界面. 你可以找到它,在Jenkins每页的左下角.如下图: 点击帮 ...

  7. The specified framework 'Microsoft.NETCore.App', version '1.0.1' was not found 解决办法

    环境:Centos 7 已经下载安装.NET Core 1.1 Microsoft .NET Core Shared Framework Host Version : Build : 928f77c4 ...

  8. C#基础之IEnumerable

    1.IEnumerable的作用 在使用Linq查询数据时经常以IEnumerable<T>来作为数据查询返回对象,在使用foreach进行遍历时需要该对象实现IEnumerable接口, ...

  9. .net程序员转行做手游开发经历(四)

    今天是大年初二,在这里先给大家拜个年,祝大家在新的一年里能事事顺心. 年前的时候更新了一版,先发了内测,没有想到过年这几天,有的小伙伴们还在玩,还给我们提了很多建议和意见,让我们觉得非常温暖,给我们很 ...

  10. 对react的几点质疑

    现在react.js如火如荼,非常火爆,昨天抽了一天来看了下这项技术.可能就看了一天,研究的不深入,但是我在看的过程中发现来了很多疑惑,这里拿出来和那家分享讨论以此共勉. 在我接触的前端以后,让我感觉 ...