产生数

预处理出一个数能变成多少种数,然后遍历原串的每一位,累乘方案数即可。

需要用到高精度。

  1. /*By SilverN*/
  2. #include<iostream>
  3. #include<cstdio>
  4. #include<algorithm>
  5. #include<cstring>
  6. #include<cmath>
  7. using namespace std;
  8. char s[];
  9. int ans[],len;
  10. int num[];
  11. int n;
  12. int mp[][];
  13. void mul(int x){
  14. int i;
  15. for(i=;i<=len;i++){ans[i]=ans[i]*x;}
  16. for(i=;i<=len;i++){
  17. if(ans[i]<)continue;
  18. ans[i+]+=ans[i]/;
  19. ans[i]%=;
  20. }
  21. while(ans[len]){
  22. ans[len+]+=ans[len]/;
  23. ans[len]%=;
  24. len++;
  25. }
  26. return;
  27. }
  28. int main(){
  29. scanf("%s",s);
  30. int i,j;
  31. scanf("%d",&n);
  32. int u,v;
  33. for(i=;i<=n;i++){
  34. scanf("%d%d",&u,&v);
  35. mp[u][v]=;
  36. }
  37. for(i=;i<=;i++)mp[i][i]=;
  38. for(int l=;l<=;l++)
  39. for(i=;i<=;i++)
  40. for(j=;j<=;j++)
  41. mp[i][j]|=(mp[i][l]&mp[l][j]);//floyd判一个数字能转换成什么数字
  42. for(i=;i<=;i++){
  43. int cnt=;
  44. for(j=;j<=;j++)if(mp[i][j])cnt++;//累计方案数
  45. num[i]=cnt;
  46. // printf("%d\n",num[i]);
  47. }
  48. int sl=strlen(s);
  49. ans[]=;len=;
  50. for(i=;i<sl;i++) mul(num[s[i]-'']);//累乘方案数
  51. for(i=len-;i;--i)printf("%d",ans[i]);
  52. return ;
  53. }

产生数

选数

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. using namespace std;
  5. struct xs{
  6. bool bo[];
  7. int num[];
  8. }x;
  9. int sum=,k,n,coun=,ct=;
  10. int pd(int p);
  11. int search(int t,int pos){
  12. for(int i=pos;i<=n;i++){
  13. if(!x.bo[i]){
  14. sum+=x.num[i];
  15. x.bo[i]=;
  16. if(t>=k){
  17. if(pd(sum)==)coun++;
  18. }
  19. else search(t+,i+);
  20. sum-=x.num[i];
  21. x.bo[i]=;
  22. }
  23. }
  24. }
  25.  
  26. int pd(int p){
  27. int i;
  28. if(p==)return ;
  29. for(i=;i<=p/;i++){
  30. if(p%i==)return ;
  31. }
  32. return ;
  33. }
  34. int main(){
  35. memset(x.bo,,sizeof(x.bo));
  36. memset(x.num,,sizeof(x.num));
  37. int i;
  38. scanf("%d%d",&n,&k);
  39. for(i=;i<=n;i++){
  40. scanf("%d",&x.num[i]);
  41. }
  42. search(,);
  43. printf("%d",coun);
  44. return ;
  45. }

选数

搜索各种组合方式,注意判重。

级数求和

暴力模拟

  1. /*By SilverN*/
  2. #include<iostream>
  3. #include<cstdio>
  4. #include<algorithm>
  5. #include<cstring>
  6. #include<cmath>
  7. using namespace std;
  8. int n;
  9. double smm,k;
  10. int main(){
  11. cin>>k;
  12. smm=;
  13. n=;
  14. while(n){
  15. smm+=(double)/n;
  16. if(smm>k)break;
  17. n++;
  18. }
  19. cout<<n<<endl;
  20. return ;
  21. }

级数求和

过河卒

暴力动规

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<cstring>
  4. #include<cstdio>
  5. using namespace std;
  6. const int mxn=;
  7. bool mp[mxn][mxn];
  8. long long f[mxn][mxn];
  9. int x1,y1,x2,y2;
  10. int main(){
  11. scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
  12. x1+=;x2+=;y1+=;y2+=;
  13. f[][]=;
  14. mp[x2][y2]=mp[x2-][y2-]=mp[x2+][y2-]=mp[x2-][y2+]=mp[x2+][y2+]=
  15. mp[x2-][y2+]=mp[x2-][y2-]=mp[x2+][y2-]=mp[x2+][y2+]=;
  16. for(int i=;i<=x1;i++)
  17. for(int j=;j<=y1;j++){
  18. if(mp[i][j])mp[i][j]=;
  19. else f[i][j]=f[i-][j]+f[i][j-];
  20. }
  21. printf("%lld\n",f[x1][y1]);
  22. return ;
  23. }

过河卒

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

  1. NOIP2002普及组复赛B 选数

    题目链接:https://ac.nowcoder.com/acm/contest/230/B 题目大意: 略 分析: DFS模板题. 代码如下: #include <bits/stdc++.h& ...

  2. noip2002 普及组 过河卒

    题目描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为"马拦过 ...

  3. 题解 【洛谷P1035】[NOIP2002普及组]级数求和

    [NOIP2002普及组]级数求和 这个题……用循环也是可以的,不过我写了两种循环的题解,供各位dalao参考!O(∩_∩)O谢谢! for循环版本: #include<bits/stdc++. ...

  4. C++算法代码——级数求和[NOIP2002 普及组]

    题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1078 或者:https://www.luogu.com.cn/problem/P10 ...

  5. 洛谷P1036 [NOIP2002 普及组] 选数 (搜索)

    n个数中选取k个数,判断这k个数的和是否为质数. 在dfs函数中的状态有:选了几个数,选的数的和,上一个选的数的位置: 试除法判断素数即可: 1 #include<bits/stdc++.h&g ...

  6. NOIP2002-2017普及组题解

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

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

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

  8. NOIP2016普及组复赛解题报告

    提高组萌新,DAY1DAY2加起来骗分不到300,写写普及组的题目聊以自慰. (附:洛谷题目链接 T1:https://www.luogu.org/problem/show?pid=1909 T2:h ...

  9. 05:统计单词数【NOIP2011复赛普及组第二题】

    05:统计单词数 总时间限制:  1000ms 内存限制:  65536kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次 ...

随机推荐

  1. Web前端攻防,一不小心就中招了

    随着各浏览器安全功能的提高,前端防御面临的问题也没有之前那么复杂,但浏览器的防御措施并不能百分百的保证网站的安全. 浏览器的XSS Auditor,使得反射型xss几乎被废:CSP(Content-S ...

  2. 移除sql数据所有链接用户

    use master;   go   declare @temp nvarchar(20)   declare myCurse cursor   for   select spid   from sy ...

  3. vijos 1772 巧妙填数

    描述 将1,2,\cdots,91,2,⋯,9共99个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:31:2:3的比例. 试求出所有满足条件的三个三位数.例如:三个三位数192,384, ...

  4. Linux OpenGL 实践篇-11-shadow

    OpenGL 阴影 在三维场景中,为了使场景看起来更加的真实,通常需要为其添加阴影,OpenGL可以使用很多种技术实现阴影,其中有一种非常经典的实现是使用一种叫阴影贴图的实现,在本节中我们将使用阴影贴 ...

  5. finger - 用户信息查找程序

    总览 finger [-lmsp ] [user ... ] [user@host ... ] 描述 The finger 显示关于系统用户的信息 参数: -s Finger 显示用户的登录名, 真名 ...

  6. dumpkeys - 转储显示键盘翻译表

    总览 (SYNOPSIS) dumpkeys [ -hilfn1 -Sshape -ccharset --help --short-info --long-info --numeric --full- ...

  7. 将自己的数据制作成voc格式

    VOCdevkit2007文件下只保存VOC2007,VOC2007下只保存Annotations ImageSets JPEGImages. JPEGImages存放所有的图片数据(即训练测试验证的 ...

  8. QT+信号有参数与无参数的实现+QT4和QT5在信号和槽使用上的区别

    在QT5中,信号有参数和无参数 #ifndef SUBWIDGET_H #define SUBWIDGET_H #include <QWidget> #include <QPushB ...

  9. PHP22 PHP在线支付

    易宝支付示例脚本 参考网址:https://blog.csdn.net/yerenyuan_pku/article/details/52239862 参数说明 p1_MerId:商户编号,网站在易宝上 ...

  10. C++ new delete(一)

    在C#.Java這種managed語言,因為有garbage collection,所以完全不用考慮free()或delete,但在C/C++,有時候要delete的,有時又不用,到底哪些改delet ...