void solve(){
int x=read(),y=read();
if(__gcd(y,x)!=1){
cout<<2<<endl;
cout<<1<<" "<<y-1<<endl;
cout<<x<<" "<<y<<endl;
}else {
cout<<1<<"\n";
cout<<x<<" "<<y<<"\n";
}
//puts(ans>0?"YES":"NO");
//puts(ans>0?"Yes":"No");
}
自己写了挺长一串的 这是赛后学习jiangly的代码
void solve(){
int n=read();
for(int i=0;i<2;i++){
for(int j=0;j<n;j++){
int x;
if((i+j)&1) x=j+1;
else x=(j+n-1)%n+n+1;
cout<<x<<" ";
if(j==n-1)cout<<"\n";
}
}
//puts(ans>0?"YES":"NO");
//puts(ans>0?"Yes":"No");
}
int a[N];
void solve(){
int n=read(),ans=1;
for(int i=1;i<=n;i++){
a[i]=read();
}
int d;
for(int i=n-1;i>=2;i--){
d=a[i]-a[i+1];
if(d<0)d=0;
if(d){
a[i]-=d;
a[i-1]-=d;
}
}
d=a[1]-a[2];
if(d<0)d=0;
if(d&&(n-1)%2==1){
for(int i=2;i<n;i++){
if(i!=2) d=a[i-1]-a[i];
if(d<0)d=0;
a[i]+=d;
a[i+1]+=d;
}
}
if(a[n]<a[n-1])ans=0;
puts(ans>0?"YES":"NO");
//puts(ans>0?"Yes":"No");
}
为了得到排列 需要构建一个易于找到顺序的图 即单链
构造单链的方法:先add(n+1) 后add(n) 这样会得到一条从尾部开始 不断在头尾跳跃的单链
先询问各点与1的距离 再询问各点与“距离1一步的点”(可能有两个 任选一个即可 下文简称j点 )的距离
规定在单链上1到j点的方向为正方向 即可知道每个值的坐标 再将坐标整体加到从0开始 即可得到排列
又因为可能上一条的正方向与实际方向相反 所以需要反着得到另一个排列
int query(int x,int y){
cout<<"? "<<x<<" "<<y<<endl;
int res;
cin>>res;
return res;
}
void solve(){
int n=read();
cout<<"+ "<<n+1<<endl;
int usl;
cin>>usl;
cout<<"+ "<<n<<endl;
cin>>usl; //构造单链
vector<int>a(n),b(n),c(n),p;
for(int i=2;i<=n;i++){ //查询所有点到1的距离
a[i-1]=query(1,i);
}
int j=find(a.begin(),a.end(),1)-a.begin(); //找到与1相邻的点
b[0]=a[j];
for(int i=1;i<n;i++){
b[i]=query(j+1,i+1); //查询各点到j点距离
}
int minn=inf;
for(int i=0;i<n;i++){ //假定正方向后 判断各点的坐标
if(a[i]<b[i]){
c[i]=-a[i];
}else {
c[i]=a[i];
}
minn=min(c[i],minn);
}
for(int i=0;i<n;i++){
c[i]-=minn; //平移各点坐标 让最小值变成0
}
int l=1,r=n,t=0;
while(l<=r){
if(!t){
p.push_back(r--);
}else {
p.push_back(l++); //构造单链顺序
}
t^=1;
}
cout<<"!";
for(int i=0;i<n;i++){
cout<<" "<<p[c[i]]; //按照相对位置输出两种排序
}
for(int i=0;i<n;i++){
cout<<" "<<p[n-1-c[i]];
}
cout<<endl;
cin>>usl;
//puts(ans>0?"YES":"NO");
//puts(ans>0?"Yes":"No");
}
对给出来的ai和bi 总是有bi限制ai
如果限制是一个单向边 可以构成一个类似树的图(可能有除了树枝之外的边)
首先考虑 每个点都在树里
将1看作树根 如果深度为依次为2,3,4,···,n的点集分别记为k(2),k(3),k(4),···,k(n)
只有1的个数受到具体限制 先排列1 一个1则可以有两个k(2) 则可以有三个k(3) ··· 则可以有n个k(n)
所以排列可以为 k(n)+k(n-1)+ ··· +k(2)+k(1)+k(n)+k(n-1)+ ··· +k(3)+k(2)+ ··· +k(n) 明显是有限的
如果不是所有的点都在树里 则可以不断重复 所以是无限的
void solve(){
int n=read(),m=read();
vector<vector<int>>g(n);
for(int i=0;i<m;i++){
int x=read(),y=read();
x--;
y--;
g[y].push_back(x); //构建邻接矩阵
}
vector<int>d(n,-1),que(1,0);
d[0]=1;
for(int i=0;i<que.size();i++){ //这个循环相当于一次对树的bfs遍历
for(int u:g[que[i]]){
if(d[u]==-1){
que.push_back(u);
d[u]=d[que[i]]+1; //记录深度
}
}
}
if(*min_element(d.begin(),d.end())==-1){ //有点不在树里则直接INFINITE
cout<<"INFINITE\n";
return ;
}
cout<<"FINITE\n";
vector<vector<int>>at(n+1);
vector<int>seq;
for(int i=0;i<n;i++){ //构建各深度的点集
at[d[i]].push_back(i);
}
for(int from =1 ;from <= n;from ++){ //照上面说的序列构成答案
for(int val=n;val>=from;val--){
for(int x:at[val]){
seq.push_back(x);
}
}
}
cout<<seq.size()<<"\n"; //输出答案
for(int i=0;i<seq.size();i++){
cout<<seq[i]+1<<" ";
}
cout<<'\n';
//puts(ans>0?"YES":"NO");
//puts(ans>0?"Yes":"No");
}
我使用Nokogiri(Rubygem)css搜索寻找某些在我的html里面。看起来Nokogiri的css搜索不喜欢正则表达式。我想切换到Nokogiri的xpath搜索,因为这似乎支持搜索字符串中的正则表达式。如何在xpath搜索中实现下面提到的(伪)css搜索?require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(ABBlaCD3"HTML_END#my_blockisgivenmy_bl="1"#my_eqcorrespondstothisregexmy_eq="\/[0-9]+\/"#FIXMEThefoll
我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption
我知道这篇文章在这里:RubySlim-Howdoyoudefineanelement'sclasswitharailshelperorvariable?我已经尝试了所有三种解决方案。不幸的是,对我来说,没有一个在工作。论坛.rb.panel.panel-heading.span=@forum.name.panel-body.row.col-md-7#{t('global.topic')}.col-md-3.value.title.col-md-1.value.topic.col-md-1.value.dateforum_feed.js.coffeewindow.ForumFeedUI
当验证未通过时,如何停止Rails更改我的代码。每次rails用包裹我的字段...我可以编辑fields_with_error类.fields_with_error{display:inline}这行得通,但它是hacky 最佳答案 没关系。使用CSS而不是这样做。ActionView::Base.field_error_proc=Proc.newdo|html_tag,instance_tag|"#{html_tag}"end我觉得这更hacky:) 关于ruby-on-rails-R
我有这个div我想要的结果是有没有办法在我的erb中添加类(class)?我试过了但是当它呈现时,它不会逃逸到ruby代码中......和想法? 最佳答案 它与一起%>"> 关于ruby-on-rails-使用RubyonRails将类动态添加到.erb中的div,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3015986/
我遇到了错误undefinedmethod`div'for"11":String"在我提交表单时指向@startdate行。我完全不明白这是怎么回事。如果我在Rails控制台中执行这些步骤,它就可以正常工作。在我的Controller中我有:@startday=params["startday_#{i}".to_sym]@startmonth=params["startmonth_#{i}".to_sym]@startyear=params["startyear_#{i}".to_sym].to_s@endday=params["endday_#{i}".to_sym]@endmont
题外话:抑郁场,开局一小时只出A,死活想不来B,最后因为D题出锅ura才保住可怜的分。但咱本来就写不到DB-LongLegs(数论)本题题解法一学自同样抑郁的知乎作者幽血魅影的题解,有讲解原理。法二来着知乎巨佬cup-pyy(大佬说《不难发现》呜呜)题意三种操作:向上走mmm步向右走mmm步给自己一次走的步数加111,即使得m=m+1m=m+1m=m+1问从(0,0)(0,0)(0,0)走到(a,b)(a,b)(a,b)的最小操作次数,值得注意的是操作三不可逆。解析假设我们最终一步的大小增长到mmm,那么在这个过程中我能以[1,m][1,m][1,m](当步数增长到该数时)之间的任何数字向上或
作为Rails的新手(更像是基础设施专家),我正在实现一个仪表板。仪表板将由多个页面组成,每个页面将包含多个图表/表格/等。对于模块化,我希望添加新图表或更改数据View尽可能简单。假设一页有5个不同的图表。我可以让Controller进行5次单独的数据查找,将所有相关数据保存在实例变量中,并呈现5个部分,每个部分都涉及数据的子集。但是看起来更模块化的是有一个“索引”ControllerAction,它的渲染有一堆div,并且对于每个div都有另一个ControllerAction,它进行数据查找并有一个相关的View部分负责管理该数据的View在分区内。因此,如果我要显示包含两个图表
如何测试一个div标签是否具有特定的css样式?我正在尝试测试它是否有display:none;或display:block。我尝试了以下但它给了我一个错误:it{shouldhave_selector('signup_server_generic_errors',/display:\s*none/)} 最佳答案 我建议您不要尝试定位css样式,而是编写测试来查找css类名。通过这种方式,您可以更改底层的css样式,同时保持类不变,您的测试仍然会通过。搜索底层样式很脆弱。风格经常变化。将你的rspecs建立在寻找特定样式元素的基础上
我需要在特定的div、类或id中显示toastr消息。默认情况下它是body。我发现我需要改变目标。但我似乎无法让它发挥作用。例如,我想在这个div中显示toastr:这是我使用的代码:toastr.options={"closeButton":false,"debug":false,"newestOnTop":false,"progressBar":false,"positionClass":"toast-top-right","preventDuplicates":false,"onclick":null,"showDuration":"300","hideDuration":"1