博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
The 10th SWJTU Collegiate Programming Contest - Online Round
阅读量:4548 次
发布时间:2019-06-08

本文共 8814 字,大约阅读时间需要 29 分钟。

Problem A: SRTP
 对两行分别求和,比较大小
1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 int main() 9 {10 int t,a,i,j,sum1,sum2,n,m;11 cin>>t;12 {13 for(i=1;i<=t;i++)14 {15 cin>>n>>m;16 sum1=sum2=0;17 for(j=1;j<=n;j++)18 {19 cin>>a;20 sum1+=a;21 22 }23 for(j=1;j<=m;j++)24 {25 cin>>a;26 sum2+=a;27 28 }29 if(sum1>sum2) cout<<"Terry"<
A
 
 
Problem B: 2048
模拟U,D,R,L四种操作
1 #include
2 #include
3 4 int a[10][10]; 5 6 void fun(char c) 7 { 8 int i,j,n1,n2,k; 9 int b[10],tmp[10]; 10 11 if(c=='U') 12 { 13 for(j=1;j<=4;j++) // ?? 14 { 15 n1=0; 16 for(i=1;i<=4;i++) 17 if(a[i][j]!=0) b[++n1]=a[i][j]; 18 n2=0; 19 /* printf("b:"); 20 for(i=1;i<=n1;i++) 21 printf("%d ",b[i]); 22 printf("\n"); 23 */ 24 for(i=1;i<=n1;i++) 25 if(i==n1) tmp[++n2]=b[i]; 26 else { 27 if(b[i]==b[i+1]) tmp[++n2]=b[i]*2,i++; 28 else tmp[++n2]=b[i]; 29 } 30 31 32 for(i=1;i<=n2;i++) 33 a[i][j]=tmp[i]; 34 for(i=n2+1;i<=4;i++) 35 a[i][j]=0; 36 } 37 38 39 } 40 41 if(c=='D') 42 { 43 for(j=1;j<=4;j++) // ?? 44 { 45 n1=0; 46 for(i=4;i>=1;i--) 47 if(a[i][j]!=0) b[++n1]=a[i][j]; 48 n2=0; 49 /* printf("b:"); 50 for(i=1;i<=n1;i++) 51 printf("%d ",b[i]); 52 printf("\n"); 53 */ 54 for(i=1;i<=n1;i++) 55 if(i==n1) tmp[++n2]=b[i]; 56 else { 57 if(b[i]==b[i+1]) tmp[++n2]=b[i]*2,i++; 58 else tmp[++n2]=b[i]; 59 } 60 61 62 for(i=1,k=4;i<=n2;i++,k--) 63 a[k][j]=tmp[i]; 64 for(int i1=k;i1>=1;i1--) 65 a[i1][j]=0; 66 } 67 68 } 69 70 71 if(c=='L') 72 { 73 for(i=1;i<=4;i++) // ?? 74 { 75 76 n1=0; 77 for(j=1;j<=4;j++) 78 if(a[i][j]!=0) b[++n1]=a[i][j]; 79 n2=0; 80 for(j=1;j<=n1;j++) 81 if(j==n1) tmp[++n2]=b[j]; 82 else { 83 if(b[j]==b[j+1]) tmp[++n2]=b[j]*2,j++; 84 else tmp[++n2]=b[j]; 85 86 } 87 88 for(j=1;j<=n2;j++) 89 a[i][j]=tmp[j]; 90 for(j=n2+1;j<=4;j++) 91 a[i][j]=0; 92 93 } 94 } 95 96 if(c=='R') 97 { 98 for(i=1;i<=4;i++) // ?? 99 {100 101 n1=0;102 for(j=4;j>=1;j--)103 if(a[i][j]!=0) b[++n1]=a[i][j];104 n2=0;105 for(j=1;j<=n1;j++)106 if(j==n1) tmp[++n2]=b[j];107 else {108 if(b[j]==b[j+1]) tmp[++n2]=b[j]*2,j++;109 else tmp[++n2]=b[j];110 111 }112 113 for(j=1,k=4;j<=n2;j++,k--)114 a[i][k]=tmp[j];115 for(int j1=k;j1>=1;j1--)116 a[i][j1]=0;117 118 }119 }120 121 122 }123 124 125 126 int main()127 {128 int i,j;129 char s[10005];130 131 while(~scanf("%d%d%d%d",&a[1][1],&a[1][2],&a[1][3],&a[1][4]))132 {133 for(i=2;i<=4;i++)134 for(j=1;j<=4;j++)135 scanf("%d",&a[i][j]);136 137 scanf("%s",s);138 int len=strlen(s);139 for(i=0;i
B
 
 
Problem C: What's Her Name?
统计g,u,a,n,j,i出现次数。
(g-1),u,a,(n/2),j,i中的最小值即为字符串可能出现的最大次数
注意:(g-1)可能小于零,此时特判答案为0.
1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 int main() 9 {10 //string ans="guanjing";11 int flag[110];12 // freopen("data.in","r",stdin);13 // freopen("data.out","w",stdout);14 int t,a,i,j,sum1,sum2,n,m,sum,l,cnt,now,ans;15 string s;16 while(cin>>s)17 {18 cnt=0;19 l=s.length();20 memset(flag,0,sizeof(flag));21 for(i=0;i
C

 

 

Problem D: Skip Classes?

水题

1 #include 
2 #include
3 using namespace std; 4 int a[1005]; 5 int main() 6 { 7 int x,y,i,j,k,n,m; 8 int ans; 9 while(~scanf("%d%d%d",&n,&m,&k))10 {11 x=0;12 ans=0;13 for(i=0;i
k)20 {21 x+=y-k;22 if(x>m) ans+=x-m;23 }else{24 if(x>m) ans+=x-m;25 }26 printf("%d\n",ans);27 }28 return 0;29 }
D

 

 

Problem E: Sequence

动态规划

dp[n][k]=dp[n][k]+dp[n/i][k-1]    (i=1~n)

1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 int dp[2003][2003]; 7 int solve(int n, int k) 8 { 9 if(n==1) return 1;10 if(k==1) return n;11 if(dp[n][k]) return dp[n][k];12 13 for (int i = 1; i <= n; ++i)14 {15 dp[n][k]=(dp[n][k]+solve(n/i,k-1))%(20120354);16 }17 return dp[n][k];18 }19 int main()20 {21 int n, k;22 while(~scanf("%d%d",&n,&k))23 cout<
E
 
 
Problem F: Share Candies
1 不会。2 请各位看官@憨大哥@管大神
F

 

 
 
Problem G: Fibonacci Prime
除了前几个,下标为素数的菲波那契数其实就是题目说的菲波那契素数。
K最大又只有20,背一下100以内的素数。。
1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 int outcome[65]={ 0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,81,89}; 9 10 int main()11 {12 //freopen("data.in","r",stdin);13 // freopen("data.out","w",stdout);14 unsigned long long ans;15 int t,a,i,j,sum1,sum2,n,m,sum;16 long long f[300];17 f[1]=f[2]=1;18 for(i=3;i<=299;i++)19 f[i]=f[i-1]+f[i-2];20 while(cin>>n)21 {22 if(n==1) cout<<2<
G

 

 

Problem H: A + B Again

1、无限循环小数化分数:

比如说对于一个无限循环小数0.(4),用我们中学数学中学到的方法,令X = 0.(4),则10 * X = 4.(4) = 4 + 0.(4) = 4 + X     =>     X = 4 / 9,同理,首先将题中所给出的小数转化为0.(***)的形式,然后再采用上述所示的方法即可。

2、分数相加
3、约分
1     #include 
2 #include
3 #include
4 using namespace std; 5 6 long long gcd(long long a,long long b) 7 { 8 return b==0?a:gcd(b,a%b); 9 }10 11 void fun(char *s,long long *a,long long *b)12 {13 long long i,j,k,p,n,nl,ml,m,flag=0,g;14 long long len=strlen(s);15 16 for(j=0;j
H

 

 

Problem I: Digits' Sum

暴力打表 或者 快速幂

对于N=64的数据进行特判。

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 int outcome[65]={ 1,2,4,8,7,5,10,11,13,8,7,14,19,20,22,26,25,14,19,29,31,26,25,41,37,29,40,35,43,41,37,47,58,62,61,59,64,56,67,71,61,50,46,56,58,62,70,68,73,65,76,80,79,77,82,92,85,80,70,77,82,74,85,89,88}; 9 unsigned long long mul(unsigned long long a,unsigned long long b)10 {11 unsigned long long ans;12 ans=1;13 while(b)14 {15 if(b&1)16 ans=ans*a;17 b>>=1;18 a*=a;19 }20 return ans;21 }22 int main()23 {24 //freopen("data.in","r",stdin);25 //freopen("data.out","w",stdout);26 unsigned long long ans;27 int t,a,i,j,sum1,sum2,n,m,sum;28 while(cin>>n)29 cout<
<
I

 

 

 

 

转载于:https://www.cnblogs.com/-dante-/p/3662568.html

你可能感兴趣的文章
第二章-递归与分治策略
查看>>
快速排查SQL服务器阻塞语句
查看>>
推荐系统常用数据集
查看>>
stack
查看>>
spring-boot+nginx+tomcat+ssl配置笔记
查看>>
查找轮廓(cv2.findCountours函数)
查看>>
动态规划:插头DP
查看>>
离线下载解决Nuget程序包及其依赖包的方法
查看>>
react中的refs
查看>>
使用cvCanny方法边缘检测出现的错误
查看>>
redhat6.5安装oracle 11g
查看>>
Using View and Data API with Meteor
查看>>
python cmd模块练习
查看>>
前端知识点
查看>>
Java的访问权限
查看>>
HTML5 1.5 表格元素
查看>>
SMT(SF)
查看>>
Android系列--DOM、SAX、Pull解析XML
查看>>
关于64位 MS SQL 导入导出 Oracle 引发 ORA-06413 的解决方法
查看>>
java.io.UnsupportedEncodingException
查看>>