A.QAQ

  • 题目大意:从给定的字符串中找出QAQ的个数,三个字母的位置可以不连续
  • 思路:暴力求解,先找到A的位置,往前扫,往后扫寻找Q的个数q1,q2,然
  • 后相乘得到q1*q2,这就是这个A能够找到的QAQ个数,依次累加即可
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
string s;
cin>>s;
int len=s.length(),sum=0;
for(int i=0;i<len;++i) {
if(s[i]=='A') {
int num1,num2;
num1=num2=0;
for(int j=0;j<i;++j) if(s[j]=='Q') num1++;
for(int j=i+1;j<len;++j) if(s[j]=='Q') num2++;
if(num1&&num2) sum+=num1*num2;
}
}
cout<<sum<<endl;
return 0;
}

B. Ralph And His Magic Field

  • 题目大意:给一个\(n*m\)的格子,使得每一行与每一列都等于给定的k值,k取1或者-1
  • 我比较笨,没做出来,下来之后补题用达标发现规律
  • 最后的方案数为\(res = 2 ^{(n-1)*(m-1)}\)当\(n,m\)一个是奇数一个是偶数,且\(k==-1\)时直接输出0即可
  • 注意先计算\(2^{(n-1)}\)再计算\((2^{(n-1)})^{m-1}\),不然直接计算会使得中途的结果就不一样
  • 最终程序:
#include <iostream>
#include <stdio.h>
using namespace std;
typedef long long ll;
const ll mod = 1000000007;
ll n,m,k;
ll qpow(ll base, ll num) {
ll res=1;
while(num) {
if(num&1) res=((res%mod)*(base%mod))%mod;
num>>=1;
base=((base%mod)*(base%mod))%mod;
}
return res;
}
int main() {
scanf("%I64d %I64d %I64d",&n,&m,&k);
if(((n&1)!=(m&1))&&k==-1) {
printf("0\n");
return 0;
}
printf("%I64d\n", qpow(qpow(2,n-1),m-1));
return 0;
}
  • 打表程序
#include <iostream>
using namespace std;
int a[14][14];
int b[2]={-1,1};
int n,m,num,sum=0;
bool check() {
int temp;
for(int i=1; i<=n; ++i) {
temp=1;
for(int j=1; j<=m; ++j) {
temp*=a[i][j];
}
if(temp!=num) return false;
}
for(int i=1; i<=m; ++i) {
temp=1;
for(int j=1; j<=n; ++j) {
temp*=a[j][i];
}
if(temp!=num) return false;
}
return true;
}
void dfs(int x, int y) {
for(int i=0; i<=1; ++i) {
a[x][y]=b[i];
if(x<n&&y<m) dfs(x,y+1);
else if(x<n&&y==m) dfs(x+1,1);
else if(x==n&&y<m) dfs(x,y+1);
else if(x==n&&y==m) {
if(check()) sum++;
}
}
}
int main() {
while(cin>>n>>m>>num) {
sum=0;
dfs(1,1);
cout<<sum<<endl;
}
return 0;
}

C. Marco and GCD Sequence

  • 题目大意:给定已经求出的区间gcd,看是否存在序列满足求出的gcd
  • 思路:因为给定了gcd,那么可使最小的数要成为其他区间的gcd(插
  • 入),这是一定满足要求的解法。如果其他数不能被最小数整除,这
  • 说明给定gcd缺少了元素。
  • eg_1: 2 3 6 10
  • 其中3不能被2整除,说明给定gcd缺少了元素,添加1:1 2 3 6 10才可以
  • answer:1 (1) 2 (1) 3 (1) 6 (1) 10 gcd(ai,aj)=1;
  • eg_2:1 3 5 6 10 15 把最小数插入中间即可满足
  • answer:1 (1) 3 (1) 5 (1) 6 (1) 10 (1) 15 gcd(ai,aj)=1;
#include <iostream>
using namespace std;
int main() {
int n,ans[1005];
cin>>n;
for(int i=1;i<=n;++i) cin>>ans[i];
for(int i=1;i<=n;++i) {
if(ans[i]%ans[1]) {
cout<<"-1"<<endl;
return 0;
}
}
cout<<n+(n-1)<<endl;
for(int i=1;i<n;++i) cout<<ans[i]<<" "<<ans[1]<<" ";
cout<<ans[n]<<endl;
return 0;
}

codeforces #447 894A QAQ 894B Ralph And His Magic Field 894C Marco and GCD Sequence的更多相关文章

  1. Codeforces 894B - Ralph And His Magic Field

    894B - Ralph And His Magic Field 思路: 当k为1时,如果n和m奇偶性不同,那么没有答案. 可以证明,在其他情况下有答案,且答案为2^(n-1)*(m-1),因为前n- ...

  2. codeforces 894B - Ralph And His Magic Field - [数学题]

    题目链接:https://cn.vjudge.net/problem/CodeForces-894B Ralph has a magic field which is divided into n × ...

  3. Codeforces Round #447 (Div. 2) B. Ralph And His Magic Field【数论/组合数学】

    B. Ralph And His Magic Field time limit per test 1 second memory limit per test 256 megabytes input ...

  4. Codeforces Round #447 (Div. 2) B. Ralph And His Magic Field 数学

    题目链接 题意:给你三个数n,m,k;让你构造出一个nm的矩阵,矩阵元素只有两个值(1,-1),且满足每行每列的乘积为k,问你多少个矩阵. 解法:首先,如果n,m奇偶不同,且k=-1时,必然无解: 设 ...

  5. codeforces 894C - Marco and GCD Sequence - [有关gcd数学题]

    题目链接:https://cn.vjudge.net/problem/CodeForces-894C In a dream Marco met an elderly man with a pair o ...

  6. Codeforces 894.B Ralph And His Magic Field

    B. Ralph And His Magic Field time limit per test 1 second memory limit per test 256 megabytes input ...

  7. 【Codeforces Round #447 (Div. 2) B】Ralph And His Magic Field

    | [链接] 我是链接,点我呀:) [题意] 给你一个n*m矩阵,让你在里面填数字. 使得每一行的数字的乘积都为k; 且每一列的数字的乘积都为k; k只能为1或-1 [题解] 显然每个位置只能填1或- ...

  8. Codeforces Round #447 (Div. 2) C. Marco and GCD Sequence【构造/GCD】

    C. Marco and GCD Sequence time limit per test 1 second memory limit per test 256 megabytes input sta ...

  9. 【Codeforces Round #447 (Div. 2) C】Marco and GCD Sequence

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 把gcd(a[1..n])放在输入的n个数之间. [代码] /* 1.Shoud it use long long ? 2.Have ...

随机推荐

  1. MySQL索引(1)

    所有MySQL列类型都可以被索引,对相关列使用索引是提高SELECT操作性能的最佳途径.根据存储引擎可以定义 每个表的最大索引数和最大索引长度,每种存储引擎(如MyISAM.InnoDB.BDB.ME ...

  2. MySQL常用存储引擎

    MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB.BDB. 2. 非事务安全表:MyISAM.MEMORY.MERGE.EXAMPLE.NDB Cluster.ARCHIVE.CSV. ...

  3. 读书笔记-你不知道的JS上-对象

    好想要对象··· 函数的调用位置不同会造成this绑定对象不同.但是对象到底是什么,为什么要绑定他们呢?(可以可以,我也不太懂) 语法 对象声明有两个形式: 1.字面量 => var obj = ...

  4. 读书笔记-你不知道的JS上-this

    关于this 与静态词法作用域不用,this的指向动态绑定,在函数执行期间才能确定.感觉有点像C++的多态? var a = 1; var obj = { a: 2, fn: function() { ...

  5. 用js判断是否为手机浏览,如果是手机浏览就跳转到手机站

    <script type="text/javascript"> function browserRedirect() { var sUserAgent= navigat ...

  6. Marriage is Stable

    Marriage is Stable Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...

  7. html 自定义标签使用实现方法

    通过指定html命名空间的名字来定义自定义标签:默认的一些标签p div等都在html默认的命名空间下.而自定义的标签可以放在自定义的命名空间下,可通过xmlns:命名空间名 来指定,而自定义标签需要 ...

  8. Struts2+Spring+Hibernate实现员工管理增删改查功能(一)之登录功能

    昨天的博客中我分享了个人关于ssh实现员工管理的框架整合,今天我在分享管理员登录功能的实现.  转载请注明出处"http://www.cnblogs.com/smfx1314/p/78013 ...

  9. PaaS 调研:GAE与 AWS(上)

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:韩伟 起因 PaaS作为"云"的概念,已经流行了很久.从使用的角度上看,似乎就是:写一个PHP,然后可以直接传到服务 ...

  10. Android AsyncTask内部线程池异步执行任务机制简要分析

    如下分析针对的API 25的AsyncTask的源码: 使用AsyncTask如果是调用execute方法则是同步执行任务,想要异步执行任务可以直接调用executeOnExecutor方法,多数情况 ...