这一场给的数据量都不大,关键就是要敢暴力
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; }
相关推荐
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:
2. **调整div的`z-index`值**:另一种方法是确保div元素的`z-index`值足够高,以覆盖Flash对象。例如,如果Flash对象没有指定`z-index`值,则可以将div元素的`z-index`值设置为一个较高的正数值,使其显示在Flash...
<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=...
2. **减法(Subtraction)**: 减法操作由SUB指令完成。例如,AX减去BX,可以这样表示: ```assembly SUB AX, BX ``` 同样,结果存储在AX中,进位标志CF表示是否发生借位。 3. **乘法(Multiplication)**: ...
今天CF被D恶心到了,写个题解重新整理下思路,(20开始想,25写完暴力代码,1.30才过,优化后的。。 核心思路就是在暴力的基础上进行组合数等差加速。 C(n-2,i-1)*C(j-1,n-2)*(i-1) __ j: n-1 -> m 我们发现内层...
2. **样式继承**:由于CSS的层叠规则,子菜单会继承其上级菜单的样式。在初始样式定义时,要确保第一层的`<ul>`和`<li>`样式不会影响到下拉菜单。例如,设置第一层的`<li>`为浮动`float:left`,但子菜单的`<li>`需要...
2. wmode=opaque:设置为opaque意味着Flash内容是不透明的,它会覆盖在其下方的所有页面元素。这种模式适用于不需要透明效果的场合,可以提供最佳的播放性能。当你不需要看到Flash背景或者下方的页面内容时,可以...
2.注意<embed中的 wmode=transparent… 代码 复制代码代码如下: <object classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″ codebase=”...
对于链接覆盖层`div2`,我们需要将其设置为绝对定位,并覆盖在Flash对象之上,同时设置`z-index`属性使其位于最上层,以便用户点击时能触发链接: ```html <div id="div2"> ...
1. **调整div的`z-index`属性**:确保包含Flash的div的`z-index`值低于页面上其他需要覆盖Flash的div元素。 2. **设置Flash对象的`wmode`属性**:将`wmode`属性设置为`opaque`或`transparent`。`opaque`表示Flash...
<div class=g-cf> <div xss=removed class=g-pager> </div> </div> 2、CSS样式文件 .g-cf:after {clear: both;content: ;display: table;} .g-cf {zoom:1;} /*分页*/ .g-pager{ text-align:center; color: #...
Div2D比Div2C容易。 您错过了它,仅仅是因为您在静态网站上而忘记了检查提交计数。 不再。 许多人喜欢在静态网站上参加Codeforce竞赛。 它快速且无干扰。 唯一的问题是我们需要在站点之间跳转,以免错过提交计数。 ...
5. **鼠标离开Div2**:当鼠标离开Div2时,再次设定定时器,让Div2在0.5秒后隐藏。这确保用户可以轻松地返回Div1。 6. **优化代码**:为了减少重复,我们可以将相同的功能合并到一起,比如将Div1和Div2的`...
9. **框模型**:`<div>`元素常用于分组内容,配合CSS实现布局。 10. **表单元素**:`<form>`、`<input>`、`<textarea>`、`<select>`和`<button>`用于创建用户交互表单。 11. **HTML5新特性**:包括离线存储、拖放...
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; } /* 时间显示...
传送门 题意: 找规律,题意就是有多少种方式填充该图形 画两个就发现,输出n即可 代码: #include #include #include #include #include #include #include #include ...#define SZ(x) ((int)(x)
loginPage.frame=xpath>//div[@id='loginDiv']/iframe loginPage.username=xpath>//input[@name='email'] ``` 使用 configparser 库解析 ini 配置文件 要使用 configparser 库解析 ini 配置文件,需要首先导入 ...
功能:OPRD1 <-- OPRD1 + OPRD2 + CF 说明:ADC 指令用于带进位加法运算,结果影响标志位 CF、SF、OF、PF、ZF 和 AF。 6. ADD加法指令 格式:ADD OPRD1, OPRD2 功能:两数相加 说明:ADD 指令用于加法运算,...