Measuring Lengths in Baden

进制转换 水题

#include<bits/stdc++.h>
using namespace std; int main()
{
int n;
scanf("%d",&n);
int a=n/36;
n-=a*36;
int b=(n)/3;
if((n%3)>=2)b++;
while(b>=12)b-=12,a+=1;
printf("%d %d\n",a,b);
return 0;
}

Simple XML

用栈实现的括号匹配相信大家都会

当然所有栈都可以用更直接粗暴的方法实现。

#include <iostream>

using namespace std;

int main()
{
string s; int x=0,y=0;
cin >> s;
for(int i=0; s[i]; i++)if(s[i]=='>')
{
if(s[i-2]=='/')y-=2;
for(int i=0; i<y; i++)cout<<" ";
for(int j=x; j<=i; j++)cout<<s[j]; cout<<endl;
if(s[i-2]!='/')y+=2;x=i+1;
}
}

Hobbits' Party

很简单的贪心构造

#include<bits/stdc++.h>
using namespace std; const int N=500;
vector<int> gues[N];
int main()
{
gues[1].resize(2);gues[2].resize(2);gues[3].resize(2);
gues[1][0]=1;gues[1][1]=2;
gues[2][0]=1;gues[2][1]=3;
gues[3][0]=2;gues[3][1]=3;
int k;
scanf("%d",&k);
k-=3;
int t=3;
int i;
for( i=4;;i++)
{
if((i-1)>k)break;
for(int j=1;j<=i-1;j++)
{
gues[j].push_back((t+j));
gues[i].push_back((t+j));
}
t+=(i-1);
k-=(i-1);
}
printf("%d\n",i-1);
for(int j=1;j<i;j++)
{ for(int k=0;k<gues[j].size();k++)
printf("%d ",gues[j][k]);
printf("\n");
}
return 0;
}

  

Two progressions

给定一个序列 试问能否将它拆分成两个等差数列 满足元素之间的相对位置不改变

暴力分配每个元素属于第一个还是第二个序列即可

剪枝:每个元素对于每个公差的序列只用搜索一次(证明方法自己思考)

#include<cstdio>
#include<set>
using namespace std; int n, al, bl, ff, i;
int s[30000], a[30000], b[30000];
set<int> visa[30000], visb[30000]; void dfs(){
if(al == n) return;
if(al + bl == n) {ff = 1; return;}
if(al < 2 || s[al+bl]-a[al-1] == a[al-1]-a[al-2] && (visb[al+bl].find(a[al-1]-a[al-2])==visb[al+bl].end())){
a[al] = s[al+bl];
if(al>1) visa[al+bl].insert(a[al]-a[al-1]);
al++;
dfs();
if(ff) return;
al--;
}
if(bl < 2 || s[al+bl]-b[bl-1] == b[bl-1]-b[bl-2] && (visa[al+bl].find(b[bl-1]-b[bl-2])==visa[al+bl].end())){
b[bl] = s[al+bl];
if(bl>1) visb[al+bl].insert(b[bl]-b[bl-1]);
bl++;
dfs();
if(ff) return;
bl--;
}
} int main(){
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &s[i]);
ff = al = bl = 0;
dfs();
if(ff){
for(i = 0; i < al; i++)
printf("%d ", a[i]);
printf("\n");
for(i = 0; i < bl; i++)
printf("%d ", b[i]);
printf("\n");
}
else
printf("No solution\n");
return 0;
}

  

MST Company

传送门

最新文章

  1. 自定义刻度的SeekBar
  2. Objective-C( Foundation框架 一 数组(NSMutableArray))
  3. 从RTSP协议SDP数据中获得二进制的SPS、PPS
  4. svn上想回滚代码怎么办?——svn merge 命令
  5. Sql Server REPLACE函数的使用;SQL中 patindex函数的用法
  6. [datatable]C# DataTable 如何排序
  7. Hadoop2.6.0错误
  8. java程序员修炼之道
  9. 17_高级映射:一对一查询(使用resultType)
  10. linux删除、读取文件原理
  11. JQuery(下)
  12. web.xml配置web中的key points(上)
  13. 【解题报告】SRM-08
  14. css美化滚动条
  15. 如何用java POI将word中的内容导入到mysql数据库中
  16. 文本分类学习 (十)构造机器学习Libsvm 的C# wrapper(调用c/c++动态链接库)
  17. Casual Note of OS
  18. RBF神经网络和BP神经网络的关系
  19. Hi3518 网络监控SOC芯片规格参数
  20. 一款纯css实现的漂亮导航

热门文章

  1. hdu 3940
  2. hdu 1325数据弱
  3. bzoj1190 [HNOI2007]梦幻岛宝珠 动态规划
  4. C语言基本概念之表达式
  5. OO第三单元总结--根据JML写代码
  6. 携程Apollo(阿波罗)配置中心Spring Boot迁移日志组件,使用配置中心进行管理的思路
  7. ultraiso:usb-hdd+ v2
  8. Spring MVC 异步处理请求,提高程序性能
  9. maven 的编译插件的配置
  10. FPGA第一篇:SRAM工作原理