模拟赛1103d1
取模(mod)
【题目描述】
有一个整数a和n个整数b_1, …, b_n。在这些数中选出若干个数并重新排列,得到c_1,…, c_r。我们想保证a mod c_1 mod c_2 mod … mod c_r=0。请你得出最小的r,也就是最少要选择多少个数字。如果无解,请输出-1.
【输入说明】
输入文件的第一行有一个正整数T,表示数据组数。
接下去有T组数据,每组数据的第一行有两个正整数n和a.
第二行有n个正整数b_1, …, b_n.
【输出说明】
一行,输出答案。
【样例输入】
2
2 9
2 7
2 9
6 7
【样例输出】
2
-1
【数据范围】
对于40%的数据,n<=8
对于100%的数据,T<=5,n<=20,1 <=a <=10^6,b_i<=10^6
/*
因为先模小数再模大数是没有意义的,所以要从大到小排序,然后直接搜索。
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define inf 10000000
using namespace std;
int T,x,n,ans;
int a[];
int init()
{
int x=,f=;char c=getchar();
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
void dfs(int w,int t,int now)
{
if(t>=ans)return;
if(now==){ans=t;return;}
if(w==n+)return;
dfs(w+,t,now);
dfs(w+,t+,now%a[w]);
}
int cmp(int a,int b)
{
return a>b;
}
int main()
{
freopen("mod.in","r",stdin);
freopen("mod.out","w",stdout);
T=init();
while(T--)
{
n=init();x=init();
for(int i=;i<=n;i++)
a[i]=init();
sort(a+,a+n+,cmp);
ans=inf;
dfs(,,x);
if(ans==inf) printf("-1\n");
else printf("%d\n",ans);
}
fclose(stdin);fclose(stdout);
return ;
}
【题目描述】
判断一个数列是否为等比数列。
等比数列的定义为能被表示成a,aq,aq^2,aq^3...的数列,其中a和q不等于0。
【输入说明】
输入文件的第一行有一个正整数T,表示数据组数。
接下去有T组数据,每组数据的第一行一个整数n,接下来第二行n个数非负整数Ai,表示数列。
【输出说明】
对于每一个组的每个数据输出单独一行Yes或者No。
【样例输入】
2
3
1 1 1
3
1 4 2
【样例输出】
Yes
No
【数据范围】
对于40%的数据 0<=Ai<=10^9
对于100%的数据 T<=5,n<=1000,0<=Ai<=10^100
/*利用等比中项+高精乘法判断*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define N 1010
#define M 310
using namespace std;
int T,n;
int t[M],r[M];
int a[N][M];
char s[M];
int init()
{
int x=,f=;char c=getchar();
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
void mul(int c[M],int a[M],int b[M])
{
int l1=a[],l2=b[];
for(int i=;i<=l1;i++)
{
int x=;
for(int j=;j<=l2;j++)
{
c[i+j-]+=a[i]*b[j]+x;
x=c[i+j-]/;
c[i+j-]%=;
}
c[i+l2]+=x;
}
c[]=l1+l2;
while(c[]>&&c[c[]]==)c[]--;
}
int judge(int a[M],int b[M])
{
int l1=a[],l2=b[];
if(l1!=l2)return ;
for(int i=;i<=l1;i++)
if(a[i]!=b[i])return ;
return ;
}
int main()
{
freopen("sequence.in","r",stdin);
freopen("sequence.out","w",stdout);
T=init();
while(T--)
{
n=init();
memset(a,,sizeof(a));
for(int i=;i<=n;i++)
{
scanf("%s",s);
int l=strlen(s);a[i][]=l;
for(int j=;j<=l;j++)
a[i][j]=s[l-j]-'';
}
if(a[][]==&&a[][]==)
{
printf("No\n");
continue;
}
if(n==)
{
printf("Yes\n");
continue;
}
if(a[][]==&&a[][]==)
{
printf("No\n");
continue;
}
if(n==)
{
printf("Yes\n");
continue;
}
int flag=;
for(int i=;i<=n;i++)
{
memset(t,,sizeof(t));
mul(t,a[i-],a[i]);
memset(r,,sizeof(r));
mul(r,a[i-],a[i-]);
if(judge(t,r))continue;
flag=;break;
}
if(flag)
{
printf("No\n");
continue;
}
printf("Yes\n");
}
fclose(stdin);fclose(stdout);
return ;
}
回文串(palindromes)
【题目描述】
判断是否能将字符串S分成三段非空回文串。
【输入说明】
第一行一个整数T,表示数据组数。
对于每一个组,仅包含一个由小写字母组成的串。
【输出说明】
对于每一组,单行输出"Yes" 或 "No"。
【样例输入】
2
abc
abaadada
【样例输出】
Yes
No
【数据范围】
对于40%的数据,|S|<=100
对于60%的数据,|S|<=1000
对于100%的数据,T<=20,|S|<=20000
模拟赛1103d1的更多相关文章
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- NOI模拟赛 Day1
[考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...
- NOIP第7场模拟赛题解
NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 小奇模拟赛9.13 by hzwer
2015年9月13日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...
- PKUSC 模拟赛 day1 下午总结
下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...
- [GRYZ]寒假模拟赛
写在前面 这是首次广饶一中的OIERS自编自导,自出自做(zuo)的模拟赛. 鉴于水平气压比较低,机(wei)智(suo)的WMY/XYD/HYXZC就上网FQ下海找了不少水(fei)题,经过他们优( ...
- BZOJ2741: 【FOTILE模拟赛】L
2741: [FOTILE模拟赛]L Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 1170 Solved: 303[Submit][Status] ...
随机推荐
- .NET异步编程之回调
C#中异步和多线程的区别是什么呢?异步和多线程两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性.甚至有些时候我们就认为异步和多线程是等同的概念.但是,异步和多线程还是有一些区别的.而这些区 ...
- CentOS-6.5-NFS部署
nfs-server与nfs-client端配置一样 NFS(network file system)网络文件系统:用于在网络上共享存储. 服务端-192.16 ...
- VIM使用学习笔记 : 按键说明
VIM有三种模式: 一般模式 上下左右移动光标,删除字符或删除整行,复制粘贴 编辑模式 i I i O a A r R 进入编辑模式 命令模式 在一般模式种输入 : / ?,可 ...
- BZOJ1901——Zju2112 Dynamic Rankings
1.题目大意:区间第k小,有单点修改 2.分析:这个是树状数组套线段树,也是主席树....为什么主席树这么多QAQ 就是树套树的那种插入什么的,注意啊,一定要动态开内存..不然会爆.. 然后算答案有两 ...
- statusbar 样式
1:statusBar字体为白色 在plist里面设置View controller-based status bar appearance 为 NO:设置statusBarStyle 为 UISta ...
- Oracle Redo
Redo log 重做日志在Oracle数据库中,有一种日志文件叫做重做日志文件,他就是大家俗称的:redolog.在redolog中又分为两种:在线重做日志与归档日志. ONLINE Redo lo ...
- Eclipse J2EE LUNA 部署tomcat
- MY_FIRSH_MODULE
模块描述 将30个字节的内存空间模仿成设备文件.每次读写不超过30个字节. 模块加载成功之后,需建立设备文件 mknod /dev/mydev c 231 0 模块代码 #include <li ...
- c里面的fflush函数
NAME fflush - flush a stream SYNOPSIS #include <stdio.h> int fflush(FILE *stream); DESCRIPTION ...
- 【leetcode】Fraction to Recurring Decimal
Fraction to Recurring Decimal Given two integers representing the numerator and denominator of a fra ...