博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF798
阅读量:5365 次
发布时间:2019-06-15

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

链接:

A:

 考虑不全面wa一次,水题。
1 #include
2 #include
3 char s[20]; 4 5 int main() 6 { 7 scanf("%s",s); 8 int n=strlen(s); 9 int ct=0;10 int m=n/2;11 12 for(int i=0;i
1)16 {17 puts("NO");18 return 0;19 }20 }21 if(ct==0&&n%2==0)22 {23 puts("NO");24 return 0;25 }26 puts("YES");27 return 0;28 29 }
View Code

B:

数据小,我暴力过的。。。

1 #include
2 #include
3 char s[50][120]; 4 5 6 int main() 7 { 8 int n; 9 scanf("%d",&n);10 for(int i=0;i
50) {23 puts("-1");24 return 0;25 }26 s[j][len]='\0'; //27 temp+=d;28 }29 ans=ans>temp?temp:ans;30 }31 printf("%d\n",ans);32 33 }
View 

参考:

用dp做

dp[i][j]表示使得 前i个串 和第i个串移动j次之后都相同 的 最少移动的次数

1 # include 
2 using namespace std; 3 # define fi cin 4 # define fo cout 5 string s[512]; 6 int dp[512][512]; 7 int main(void) 8 { 9 int n;10 fi>>n;11 for (int i = 1;i <= n;++i)12 fi>>s[i];13 int k = s[1].length();14 for (int i = 1;i <= n;++i)15 for (int j = 0;j < k;++j)16 dp[i][j] = 1e9;17 for (int i = 1;i <= n;++i)18 s[i] = s[i] + s[i];19 for (int i = 0;i < k;++i)20 dp[1][i] = i;21 for (int i = 2;i <= n;++i)22 {23 for (int j = 0;j < k;++j)24 for (int prev = 0;prev < k;++prev)25 if (s[i].substr(j,k) == s[i-1].substr(prev,k))26 dp[i][j] = min(dp[i][j],dp[i-1][prev] + j);27 }28 int ans = 1e9;29 for (int i = 0;i < k;++i)30 ans = min(ans,dp[n][i]);31 if (ans == 1e9)32 puts("-1");33 else34 fo << ans << '\n';35 return 0;36 }
View Code

 C:

有点巧妙,想不出
代码也很简洁
1 # include 
2 using namespace std; 3 # define fi cin 4 # define fo cout 5 int main(void) 6 { 7 int n; 8 fi>>n; 9 int g = 0,v,cnt = 0,ans = 0;10 while (n --)11 {12 int v;13 fi>>v;14 g = __gcd(g,v);15 if (v & 1) ++cnt;16 else ans += (cnt / 2) + 2 * (cnt & 1),cnt = 0;17 }18 ans += (cnt / 2) + 2 * (cnt & 1);19 fo << "YES\n";20 if (g == 1)21 fo << ans << '\n';22 else23 fo << "0\n";24 cerr << "Time elapsed :" << clock() * 1000.0 / CLOCKS_PER_SEC << " ms" << '\n';25 return 0;26 }
View Code

 D:

慢慢要学会自己分析-_-||

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 const int maxn=1e5+10; 7 #define pii pair
8 #define se second 9 #define fi first10 #define pb push_back11 12 pii a[maxn];13 int b[maxn];14 15 int main()16 {17 int n,x;18 scanf("%d",&n);19 for(int i=1;i<=n;i++)20 {21 scanf("%d",&x);22 a[i]=pii(-x,i); //为了从大到小排序(-x,i)23 }24 sort(a+1,a+n+1);25 for(int i=1;i<=n;i++)26 scanf("%d",&b[i]);27 vector
v;28 v.pb(a[1].se);29 for(int i=2;i<=n;i+=2)30 {31 if(i+1<=n&&b[a[i+1].se]>b[a[i].se])32 v.pb(a[i+1].se);33 else v.pb(a[i].se);34 }35 int len=v.size();36 printf("%d\n",len);37 for(int i=0;i
View Code

 E:

貌似有点难,貌似用到线段树和拓扑排序。
等有中文题解了再补吧。。。
 

转载于:https://www.cnblogs.com/yijiull/p/6794489.html

你可能感兴趣的文章
[转] Web前端优化之 Server篇
查看>>
如何让一个div的大小,从某一个特定值开始,随内容的增加而自动变化?
查看>>
BZOJ1801 [Ahoi2009]chess 中国象棋 【dp】
查看>>
P1977 出租车拼车(DP)
查看>>
iOS开发--完整项目
查看>>
我的博客园皮肤模板
查看>>
正则表达式
查看>>
java基础:不同进制的表现形式
查看>>
Base64转换为blob对象
查看>>
gulp自动化压缩合并、加版本号解决方案
查看>>
windows下面安装Python和pip教程
查看>>
Java 动态向 JTable 中添加数据
查看>>
平安科技移动开发二队技术周报(第九期)
查看>>
JS window.open()属性
查看>>
Oracle【二维表管理:约束】
查看>>
2017-2018-1 20155307 《信息安全系统设计基础》第5周学习总结
查看>>
微软职位内部推荐-Principal Dev Manager for Windows Phone Apps
查看>>
jquery改变元素属性值(转)
查看>>
android performance
查看>>
建造者模式
查看>>