`
暴风雪
  • 浏览: 388898 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

cf 283 div2

 
阅读更多

这一场给的数据量都不大,关键就是要敢暴力

a

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int nMax = 1000;
int num[nMax];
int main(){
    int n,i,j,k,a,b,c;
    while(cin>>n){
        for(i=0;i<n;i++){
//            cin>>num[i];
            scanf("%d",&num[i]);
        }
        int ans = nMax;
        for(i=1;i<n-1;i++){
            int d = 0;
            for(j=1;j<n;j++){
                if(j==i)continue;
                if(j == i+1)c=num[j]-num[j-2];
                else c=num[j]-num[j-1];
                d = max(d,c);
            }
            ans = min(ans,d);
        }
        cout<<ans<<endl;
    }
    return 0;
}

 b,这里我用的是字符串最小表示法

#include<iostream>
#include<cstring>
#include<vector>
#include<cstdio>
#include<algorithm>
using namespace std;
const int nMax = 3000;
char str[nMax],tmp[nMax];
int next[nMax],lenp;
vector<string>sum;
void get_next(){
    int i,j=-1;
    next[0]=-1;
    for(i=1;i<=lenp;i++){     
        while(j>-1&&str[j+1]!=str[i])j=next[j];
        if(str[j+1]==str[i])j++;
        next[i]=j;
    }
}

int minexp(char *s,int x) {
  int i=0,j=1,k=0,t;
   while(i<x&&j<x&&k<x) {
     t=s[(i+k)%x]-s[(j+k)%x];
      if(t==0) k++;
      else {
        if(t>0)  i+=k+1;
        else     j+=k+1;
        if(i==j) j++;
        k=0;
      }
   }
  return i<j?i:j;
}
bool cmp(string a ,string b){
    if(a<b)return 1;
    return 0;
}
int main(){
    int n,m,len,i,j,a;
    while(scanf("%d%s",&n,str)!=EOF){
        lenp = n;
        for(int t = 0; t < 10; t++){
            for(i=0;i<n;i++){
                str[i]+=1;
                if(str[i]>=10+'0')str[i] = '0';
            }
            get_next();
            a = minexp(str,lenp);
            for(i=n;i<n*2;i++){
                str[i] = str[i-n];
            }
//            cout<<a<<" ";
            for(i = a,j=0;i<a+n;i++){
                tmp[j] = str[i];
                j++;
            }
            tmp[j]='\0';
//            cout<<tmp<<endl;
            string s = tmp;
            sum.push_back(s);
        }
        sort(sum.begin(),sum.end(),cmp);
        cout<<sum[0]<<endl;
    }
    return 0;
}

 

C,yy出了一个傻逼O(n^3)的算法,最后五分钟交题,没想到居然过了!!

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int nMax = 400;
char str[nMax][nMax];
int num[nMax][nMax],next[nMax][nMax],sta[nMax];
int main(){
    int n,m,i,j,k,a,b,c;
    while(cin>>n>>m){
        for(i=0;i<n;i++){
            scanf("%s",str[i]);
        }
        if(n == 1){
            printf("0\n");
            continue;
        }
        for(i=1;i<n;i++){
            for(j=0;j<m;j++){
                if(str[i][j]>str[i-1][j]){
                    num[i][j] = 1;
                }
                else if(str[i][j]==str[i-1][j]){
                    num[i][j] = 0;
                }else{
                    num[i][j] = -1;
                }
            }
        }
//        for(i=1;i<n;i++){
//            for(j=0;j<m;j++){
//                cout<<num[i][j]<<" ";
//            }cout<<endl;
//        }
        memset(next,0,sizeof(next));
        memset(sta,0,sizeof(sta));
        for(i=1;i<n;i++){
            bool flag = 0;
            int pre;
            for(j=0;j<m;j++){
                if(num[i][j]!=0){
                    if(!flag){
                        pre = j;
                        sta[i] = j;
                    }else{
                        next[i][pre] = j;
                        pre = j;
                    }
                    flag = 1;
                }
            }
        }
//        for(i=1;i<n;i++){
//            cout<<sta[i]<<" ";
//        }cout<<endl;
        int ans = 0;
        for(i=0;i<m;i++){
            for(j = 1;j<n;j++){
                if(sta[j] == i && num[j][sta[j]] == -1){
//                    cout<<i<<endl;
                    ans++;
                    for(k=1;k<n;k++){
                        if(sta[k]==i){
//                                cout<<"change"<<" "<<k<<" to "<<next[k][sta[k]]<<endl;
                                sta[k] = next[k][sta[k]];
                        }
                    }
                    break;
                }
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}

 

 

1
0
分享到:
评论

相关推荐

    CF题解DIV2

    Oops! Google Chrome could not connect to codeforces.com Try reloading: codeforces.­com Additional suggestions: Access a cached copy of codeforces.­com Search on Google:

    最顶层div被flash或者下拉列表遮挡的问题解决

    2. **调整div的`z-index`值**:另一种方法是确保div元素的`z-index`值足够高,以覆盖Flash对象。例如,如果Flash对象没有指定`z-index`值,则可以将div元素的`z-index`值设置为一个较高的正数值,使其显示在Flash...

    让Flash显示在Div下面的代码

    &lt;object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" id="obj2" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" border="0" width="810" height=...

    mul_add_sub_div.rar_between

    2. **减法(Subtraction)**: 减法操作由SUB指令完成。例如,AX减去BX,可以这样表示: ```assembly SUB AX, BX ``` 同样,结果存储在AX中,进位标志CF表示是否发生借位。 3. **乘法(Multiplication)**: ...

    Educational Codeforces Round 83 (Rated for Div. 2) D

    今天CF被D恶心到了,写个题解重新整理下思路,(20开始想,25写完暴力代码,1.30才过,优化后的。。 核心思路就是在暴力的基础上进行组合数等差加速。 C(n-2,i-1)*C(j-1,n-2)*(i-1) __ j: n-1 -&gt; m 我们发现内层...

    CSS+div下拉菜单(js).pdf

    2. **样式继承**:由于CSS的层叠规则,子菜单会继承其上级菜单的样式。在初始样式定义时,要确保第一层的`&lt;ul&gt;`和`&lt;li&gt;`样式不会影响到下拉菜单。例如,设置第一层的`&lt;li&gt;`为浮动`float:left`,但子菜单的`&lt;li&gt;`需要...

    div 盖在flash上面 flash透明方法实现将DIV层放在flash上面

    2. wmode=opaque:设置为opaque意味着Flash内容是不透明的,它会覆盖在其下方的所有页面元素。这种模式适用于不需要透明效果的场合,可以提供最佳的播放性能。当你不需要看到Flash背景或者下方的页面内容时,可以...

    Firefox下div层被Flash遮住的解决方法

    2.注意&lt;embed中的 wmode=transparent… 代码 复制代码代码如下: &lt;object classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″ codebase=”...

    通过html为FLASH加链接的实现代码(div层)

    对于链接覆盖层`div2`,我们需要将其设置为绝对定位,并覆盖在Flash对象之上,同时设置`z-index`属性使其位于最上层,以便用户点击时能触发链接: ```html &lt;div id="div2"&gt; ...

    flash放置层叠级别

    1. **调整div的`z-index`属性**:确保包含Flash的div的`z-index`值低于页面上其他需要覆盖Flash的div元素。 2. **设置Flash对象的`wmode`属性**:将`wmode`属性设置为`opaque`或`transparent`。`opaque`表示Flash...

    jQuery实现的分页功能示例

    &lt;div class=g-cf&gt; &lt;div xss=removed class=g-pager&gt; &lt;/div&gt; &lt;/div&gt; 2、CSS样式文件 .g-cf:after {clear: both;content: ;display: table;} .g-cf {zoom:1;} /*分页*/ .g-pager{ text-align:center; color: #...

    CF Submission Count-crx插件

    Div2D比Div2C容易。 您错过了它,仅仅是因为您在静态网站上而忘记了检查提交计数。 不再。 许多人喜欢在静态网站上参加Codeforce竞赛。 它快速且无干扰。 唯一的问题是我们需要在站点之间跳转,以免错过提交计数。 ...

    JS延时提示框实现方法详解

    5. **鼠标离开Div2**:当鼠标离开Div2时,再次设定定时器,让Div2在0.5秒后隐藏。这确保用户可以轻松地返回Div1。 6. **优化代码**:为了减少重复,我们可以将相同的功能合并到一起,比如将Div1和Div2的`...

    CF-CR2-Ivan_Ziv

    9. **框模型**:`&lt;div&gt;`元素常用于分组内容,配合CSS实现布局。 10. **表单元素**:`&lt;form&gt;`、`&lt;input&gt;`、`&lt;textarea&gt;`、`&lt;select&gt;`和`&lt;button&gt;`用于创建用户交互表单。 11. **HTML5新特性**:包括离线存储、拖放...

    Dom中的倒计时现

    background-color: #CF0313; float: right; padding: 0 10px; } /* 文字样式 */ .skill-jd.top-skill.right-skill span { float: left; font-size: 14px; color: #FFF; margin-top: 25px; } /* 时间显示...

    Codeforces Round #633 (Div. 2) A. Filling Diamonds(找规律)

    传送门 题意: 找规律,题意就是有多少种方式填充该图形 画两个就发现,输出n即可 代码: #include #include #include #include #include #include #include #include ...#define SZ(x) ((int)(x)

    python解析ini配置文件(csdn)————程序.pdf

    loginPage.frame=xpath&gt;//div[@id='loginDiv']/iframe loginPage.username=xpath&gt;//input[@name='email'] ``` 使用 configparser 库解析 ini 配置文件 要使用 configparser 库解析 ini 配置文件,需要首先导入 ...

    汇编语言指令大全

    功能:OPRD1 &lt;-- OPRD1 + OPRD2 + CF 说明:ADC 指令用于带进位加法运算,结果影响标志位 CF、SF、OF、PF、ZF 和 AF。 6. ADD加法指令 格式:ADD OPRD1, OPRD2 功能:两数相加 说明:ADD 指令用于加法运算,...

Global site tag (gtag.js) - Google Analytics