[NOIP2002] 普及组
预处理出一个数能变成多少种数,然后遍历原串的每一位,累乘方案数即可。
需要用到高精度。
/*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] 普及组的更多相关文章
- NOIP2002普及组复赛B 选数
题目链接:https://ac.nowcoder.com/acm/contest/230/B 题目大意: 略 分析: DFS模板题. 代码如下: #include <bits/stdc++.h& ...
- noip2002 普及组 过河卒
题目描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为"马拦过 ...
- 题解 【洛谷P1035】[NOIP2002普及组]级数求和
[NOIP2002普及组]级数求和 这个题……用循环也是可以的,不过我写了两种循环的题解,供各位dalao参考!O(∩_∩)O谢谢! for循环版本: #include<bits/stdc++. ...
- C++算法代码——级数求和[NOIP2002 普及组]
题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1078 或者:https://www.luogu.com.cn/problem/P10 ...
- 洛谷P1036 [NOIP2002 普及组] 选数 (搜索)
n个数中选取k个数,判断这k个数的和是否为质数. 在dfs函数中的状态有:选了几个数,选的数的和,上一个选的数的位置: 试除法判断素数即可: 1 #include<bits/stdc++.h&g ...
- NOIP2002-2017普及组题解
虽然普及组一般都是暴力省一,但是有一些题目还是挺难的qwq个人觉得能进TG的题目会在前面打上'*' NOIP2002(clear) #include<bits/stdc++.h> usin ...
- NOIP2012 普及组 T3 摆花——S.B.S.
题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...
- NOIP2016普及组复赛解题报告
提高组萌新,DAY1DAY2加起来骗分不到300,写写普及组的题目聊以自慰. (附:洛谷题目链接 T1:https://www.luogu.org/problem/show?pid=1909 T2:h ...
- 05:统计单词数【NOIP2011复赛普及组第二题】
05:统计单词数 总时间限制: 1000ms 内存限制: 65536kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次 ...
随机推荐
- AJPFX总结String类的特点
String str = "abc"; str就是String的一个对象 字符串一旦被赋值, 值就不能再被改变了 举例:String s ...
- REST风格笔记
这一篇主要是看了FB的覃超大大的文章,做了一些笔记和自己的思考. 定义: 用URL来定义资源,用HTTP(GET/POST/DELETE/DETC)来描述操作. 1. REST描述的是网络 ...
- 将vue-cli项目配置在nginx上
登录使用的是node.js搭建的注册登录接口,关于对数据库的读写则是用spring boot的框架来实现的. 1.首先是vue-cli项目里的前端页面的配置: location / { root ...
- Web前端开发学习误区,你掉进去了没?
从接触网站开发以来到现在,已经有五个年头了吧,今天偶然整理电脑资料看到当时为参加系里面一个比赛而做的第一个网站时,勾起了在这网站开发道路上的一串串回忆,成功与喜悦.烦恼与纠结都历历在目,感慨颇多. 先 ...
- Git使用简析
推送本地操作 初始化一个本地Git仓库,在需要添加版本控制的文件夹根目录中使用git init命令. 添加文件到本地Git仓库: git add 文件名 # 添加文件到暂存区 git add . # ...
- General mistakes in parallel computing
这是2013年写的一篇旧文,放在gegahost.net上面 http://raison.gegahost.net/?p=97 March 11, 2013 General mistakes in ...
- qt 设置阴影 不显示黑色边框
this->setAttribute(Qt::WA_TranslucentBackground);
- Hessian矩阵与牛顿法
Hessian矩阵与牛顿法 牛顿法 主要有两方面的应用: 1. 求方程的根: 2. 求解最优化方法: 一. 为什么要用牛顿法求方程的根? 问题很多,牛顿法 是什么?目前还没有讲清楚,没关系,先直观理解 ...
- js将时间戳装换成日期格式
13位时间戳改为yyyy-MM-dd HH-mm-ss 格式 目标时间戳:1516324500000 formatDateTime (unix) { // 转换时间戳 var date = new D ...
- Vue 几种常见开局方式
vue的开局方式五花八门,这里列几种常见的. 我们先建立一个app.vue来当入口文件,即所有页面都会以这个组件为模板. <template> <div id="app&q ...