标签:一个 条件 cti 同步 iss logs 统一 第一个 需要
3 3 2 6 33
Yes Yes No 解题思路:先求出1000个素数,在按条件存入容器中就行了。
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <cstdlib> #include <iomanip> #include <cmath> #include <ctime> #include <map> #include <set> using namespace std; #define lowbit(x) (x&(-x)) #define max(x,y) (x>y?x:y) #define min(x,y) (x<y?x:y) #define MAX 100000000000000000 #define MOD 1000000007 #define pi acos(-1.0) #define ei exp(1) #define PI 3.141592653589793238462 #define INF 0x3f3f3f3f3f #define mem(a) (memset(a,0,sizeof(a))) typedef long long ll; ll a[1000006],vis[1000006],n,m,x; set<ll>s; void init() { memset(a,0,sizeof(a)); int pos=0; for(int i=2;i<=1000000;i++) { if(a[i]==1) continue; vis[++pos]=i; if(pos>=1000) break; for(int j=2;j*i<=1000000;j++) { a[i*j]=1; } } } int main() { init(); while(scanf("%lld%lld",&n,&m)!=EOF) { int ans=1; s.clear(); for(int i=1;i<=n;i++) { ans=(ans*vis[i])%MOD; s.insert(ans); } while(m--) { scanf("%lld",&x); if(s.count(x)==0) puts("No"); else puts("Yes"); } } }
4 5 0
3 8 Hint:对于第一个样例,当n为4的时候,我们满足条件的有 UUUU LUUU UUUL 三种情况 思路:打表
dp[i][0]没有三个连续U的序列最右边为L
dp[i][1]没有三个连续U的序列最右边有一个U
dp[i][2]没有三个连续U的序列最右边有两个连续的U
dp[i][3]有三个连续的U的序列
1.dp[i][0]可以由dp[i-1][0]+dp[i-1][1]+dp[i-1][2]转变过来,因为前一状态只要不是有了3个连续的U的序列,在最右边加一个L就可以形成
2.dp[i][1]可以由dp[i - 1][0]转变过来,因为只能是在最右边没有U的序列加上个U形成
3.dp[i][2]可以由dp[i - 1][1]转变过来,因为只能是在最右边有一个U的序列加上个U形成
3.dp[i][3]可以由dp[i - 1][3] * 2 + dp[i - 1][2]转变过来,因为如果原本就是有连续3个U的序列最右边加上什么都是该情况,然后也可以在最右边有两个U的序列加上个U形成
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <cstdlib> #include <iomanip> #include <cmath> #include <ctime> #include <map> #include <set> using namespace std; #define lowbit(x) (x&(-x)) #define max(x,y) (x>y?x:y) #define min(x,y) (x<y?x:y) #define MAX 100000000000000000 #define MOD 1000000007 #define pi acos(-1.0) #define ei exp(1) #define PI 3.141592653589793238462 #define INF 0x3f3f3f3f3f #define mem(a) (memset(a,0,sizeof(a))) typedef long long ll; int dp[35][5],n; void init() { dp[1][0]=1;dp[1][1]=1;dp[1][2]=0;dp[1][3]=0; for(int i=2;i<32;i++) { dp[i][0]=dp[i-1][0]+dp[i-1][1]+dp[i-1][2]; dp[i][1]=dp[i-1][0]; dp[i][2]=dp[i-1][1]; dp[i][3]=dp[i-1][3]*2+dp[i-1][2]; } } int main() { init(); while(scanf("%d",&n)&& n) { printf("%d\n",dp[n][3]); } } //***************************************************************/ #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <cstdlib> #include <iomanip> #include <cmath> #include <ctime> #include <map> #include <set> using namespace std; #define lowbit(x) (x&(-x)) #define max(x,y) (x>y?x:y) #define min(x,y) (x<y?x:y) #define MAX 100000000000000000 #define MOD 1000000007 #define pi acos(-1.0) #define ei exp(1) #define PI 3.141592653589793238462 #define INF 0x3f3f3f3f3f #define mem(a) (memset(a,0,sizeof(a))) typedef long long ll; ll a[55]={0, 0, 1, 3, 8, 20, 47, 107, 238, 520, 1121, 2391, 5056, 10616, 22159, 46023, 95182, 196132, 402873, 825259, 1686408, 3438828, 6999071, 14221459, 28853662, 58462800, 118315137, 239186031, 483072832, 974791728, 1965486047}; int main() { int n; while(scanf("%d",&n)&&n) { printf("%lld\n",a[n-1]); } }
3 1 2 3 2 2 4 1 3 4
62 0
3 1 5 3 2 5 2 4 2 1 2 4 2 11 2 4 6 6 6 4 2 1 1 2 2 3
6 1
0 65
+-----+ | E| | | | | | | | | +-----+ +-----+ |- 3G| |-- | |--- | | | | | +-----+
水题
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <cstdlib> #include <iomanip> #include <cmath> #include <ctime> #include <map> #include <set> using namespace std; #define lowbit(x) (x&(-x)) #define max(x,y) (x>y?x:y) #define min(x,y) (x<y?x:y) #define MAX 100000000000000000 #define MOD 1000000007 #define pi acos(-1.0) #define ei exp(1) #define PI 3.141592653589793238462 #define INF 0x3f3f3f3f3f #define mem(a) (memset(a,0,sizeof(a))) typedef long long ll; int main() { int n; while(scanf("%d",&n)!=EOF) { int k=n/20; char a[5]; if(n>=90) a[0]=‘4‘,a[1]=‘G‘; else if(n>=60) a[0]=a[0]=‘3‘,a[1]=‘G‘; else a[0]=‘ ‘,a[1]=‘E‘; printf("+-----+\n"); for(int i=1;i<=k;i++) { printf("|"); for(int j=1;j<=5;j++) { if(j<=i) printf("-"); if(i==1 && j==4) { if(n>=90)printf("4G"); else if(n>=60)printf("3G"); else printf(" E"); break; } else if(j>i)printf(" "); } printf("|\n"); } for(int i=k+1;i<=5;i++) { printf("|"); for(int j=1;j<=5;j++) { if(i==1 && j==4) { if(n>=90)printf("4G"); else if(n>=60)printf("3G"); else printf(" E"); break; } else printf(" "); } printf("|\n"); } printf("+-----+\n"); } return 0; }
5 4 10 9 12 9 7 14 1 2 4 5 3 4 1 4
7
2 3 2 6 4 3 4 6 9
Yes No
简单判断
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <cstdlib> #include <iomanip> #include <cmath> #include <ctime> #include <map> #include <set> using namespace std; #define lowbit(x) (x&(-x)) #define max(x,y) (x>y?x:y) #define min(x,y) (x<y?x:y) #define MAX 100000000000000000 #define MOD 1000000007 #define pi acos(-1.0) #define ei exp(1) #define PI 3.141592653589793238462 #define INF 0x3f3f3f3f3f #define mem(a) (memset(a,0,sizeof(a))) typedef long long ll; ll gcd(ll x,ll y) { return y==0?x:gcd(y,x%y); } int main() { ll n,a[10005],b[10005],t; scanf("%lld",&t); while(t--) { int m=0; scanf("%lld",&n); for(int i=0;i<n;i++) scanf("%lld",&a[i]); for(int i=1;i<n;i++) { ll x=gcd(a[i],a[i-1]); if(x==1) { puts("No"); goto k; } b[m++]=x; } sort(b,b+m); for(int i=1;i<m;i++) { if(b[i]%b[0]!=0) { puts("No"); goto k; } } puts("Yes"); k:; } return 0; }
标签:一个 条件 cti 同步 iss logs 统一 第一个 需要
原文地址:http://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/7257213.html