产生数

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

需要用到高精度。

 /*By SilverN*/
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
char s[];
int ans[],len;
int num[];
int n;
int mp[][];
void mul(int x){
int i;
for(i=;i<=len;i++){ans[i]=ans[i]*x;}
for(i=;i<=len;i++){
if(ans[i]<)continue;
ans[i+]+=ans[i]/;
ans[i]%=;
}
while(ans[len]){
ans[len+]+=ans[len]/;
ans[len]%=;
len++;
}
return;
}
int main(){
scanf("%s",s);
int i,j;
scanf("%d",&n);
int u,v;
for(i=;i<=n;i++){
scanf("%d%d",&u,&v);
mp[u][v]=;
}
for(i=;i<=;i++)mp[i][i]=;
for(int l=;l<=;l++)
for(i=;i<=;i++)
for(j=;j<=;j++)
mp[i][j]|=(mp[i][l]&mp[l][j]);//floyd判一个数字能转换成什么数字
for(i=;i<=;i++){
int cnt=;
for(j=;j<=;j++)if(mp[i][j])cnt++;//累计方案数
num[i]=cnt;
// printf("%d\n",num[i]);
}
int sl=strlen(s);
ans[]=;len=;
for(i=;i<sl;i++) mul(num[s[i]-'']);//累乘方案数
for(i=len-;i;--i)printf("%d",ans[i]);
return ;
}

产生数

选数

 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
struct xs{
bool bo[];
int num[];
}x;
int sum=,k,n,coun=,ct=;
int pd(int p);
int search(int t,int pos){
for(int i=pos;i<=n;i++){
if(!x.bo[i]){
sum+=x.num[i];
x.bo[i]=;
if(t>=k){
if(pd(sum)==)coun++;
}
else search(t+,i+);
sum-=x.num[i];
x.bo[i]=;
}
}
} int pd(int p){
int i;
if(p==)return ;
for(i=;i<=p/;i++){
if(p%i==)return ;
}
return ;
}
int main(){
memset(x.bo,,sizeof(x.bo));
memset(x.num,,sizeof(x.num));
int i;
scanf("%d%d",&n,&k);
for(i=;i<=n;i++){
scanf("%d",&x.num[i]);
}
search(,);
printf("%d",coun);
return ;
}

选数

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

级数求和

暴力模拟

 /*By SilverN*/
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int n;
double smm,k;
int main(){
cin>>k;
smm=;
n=;
while(n){
smm+=(double)/n;
if(smm>k)break;
n++;
}
cout<<n<<endl;
return ;
}

级数求和

过河卒

暴力动规

 #include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
const int mxn=;
bool mp[mxn][mxn];
long long f[mxn][mxn];
int x1,y1,x2,y2;
int main(){
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
x1+=;x2+=;y1+=;y2+=;
f[][]=;
mp[x2][y2]=mp[x2-][y2-]=mp[x2+][y2-]=mp[x2-][y2+]=mp[x2+][y2+]=
mp[x2-][y2+]=mp[x2-][y2-]=mp[x2+][y2-]=mp[x2+][y2+]=;
for(int i=;i<=x1;i++)
for(int j=;j<=y1;j++){
if(mp[i][j])mp[i][j]=;
else f[i][j]=f[i-][j]+f[i][j-];
}
printf("%lld\n",f[x1][y1]);
return ;
}

过河卒

[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. PKU_campus_2017_K Lying Island

    思路: 题目链接http://poj.openjudge.cn/practice/C17K/ 状压dp.dp[i][j]表示第i - k人到第i人的状态为j的情况下前i人中最多有多少好人. 实现: # ...

  2. CF781A Andryusha and Colored Balloons

    题意: Andryusha goes through a park each day. The squares and paths between them look boring to Andryu ...

  3. 【经验总结】北邮OJ

    90. 字符串转换 时间限制 1000 ms 内存限制 65536 KB 题目描述 我们将仅由若干个同一小写字母构成的字符串称之为简单串,例如"aaaa"是一个简单串,而" ...

  4. 用vue做一个酷炫的menu

    写在前面 最近看到一个非常酷炫的menu插件,一直想把它鼓捣成vue形式,谁让我是vue的死灰粉呢,如果这都不算爱

  5. Redis学习笔记(二)字符串进阶

    1.增减操作 字符串可以储存字节串.整数.浮点数三种类型的值,如果值无法被解释为十进制的整数或浮点数,那么对此值进行增减操作会返回错误,如果对一个不存在的或者保存了空串的键进行增减操作,Redis将当 ...

  6. [转]qt QTableWidget&&QTableView 导出数据到excel

    转自http://blog.csdn.net/fairystepwgl/article/details/54576372 注意:由于在qt导出的过程中分为QTableWidget导出文件到excel和 ...

  7. JS正则匹配待重命名文件名

    <script>var str = "123 - Copy(2).csv";var regExp = /^123( - Copy(\(\d+\))?)?.csv$/;d ...

  8. JS正则表达式匹配<div><style>标签

    测试字符串: <style>v\:* {                 BEHAVIOR: url(#default#VML) } o\:* {                 BEHA ...

  9. 51nod 1067 Bash游戏 V2

    基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 有一堆石子共有N个.A B两个人轮流拿,A先拿.每次只能拿1,3,4颗,拿到最后1颗石子的人获胜.假设A B都非常聪 ...

  10. Linux-RedHat7.2 安装.net core2.0

    1.添加dotnet产品Feed sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'ech ...