[NOIP2011] 普及组
小模拟
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int i,n;
char a[];
scanf("%s",&a);
n=strlen(a);
int t1=;
int t2=;
if (a[]=='-') {
printf("-");
t1++;
}
t2=n-;
for(i=n-;i>=;i--) if(a[i]=='')
t2--;
else break;
for(i=t2;i>=t1;i--) cout<<a[i];
return ;
}
数字反转
将待匹配字符串前后加空格,样本字符串前后加空格,这样无脑find就可以找出所有单词
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;
string s,sf;
int t;//计数器;
int main(){
getline(cin,sf);
getline(cin,s);
int j;
for(j=;j<=sf.size();j++)sf[j]=tolower(sf[j]);
for(j=;j<=s.size();j++)s[j]=tolower(s[j]);
sf=' '+sf+' ';
s=' '+s+' ';
int posi=-;
int fpos=;
if(s.find(sf)==string::npos){cout<<"-1"; return ;}
fpos=s.find(sf);
while(s.find(sf,posi+)!=string::npos){
posi=s.find(sf,posi+);
t++;
}
cout<<t<<" "<<fpos;
return ;
}
统计单词数
按照题目要求排序,每次模拟完都要排一次序。
直接sort会T
原本有序的序列,比赛完积分只加0或1,仍然是有序的,此时用归并排序只要O(n)复杂度。
/*by SilverN*/
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
const int mxn=;
int n,r,q;
struct node{
int pw;
int score;
int num;
}a[mxn],w[mxn],f[mxn];//所有人 胜者 败者
int cmp(node a,node b){
if(a.score!=b.score) return a.score>b.score;
return a.num<b.num;
}
int main(){
scanf("%d%d%d",&n,&r,&q);
n=n*;
int i,j;
for(i=;i<=n;i++){
scanf("%d",&a[i].score);
}
for(i=;i<=n;i++){
scanf("%d",&a[i].pw);
a[i].num=i;
}
sort(a+,a+n+,cmp); for(i=;i<=r;i++){
for(j=;j<=n;j+=){
if(a[j].pw>a[j+].pw){
w[(j+)>>]=a[j];
f[(j+)>>]=a[j+];
}
else{
w[(j+)>>]=a[j+];
f[(j+)>>]=a[j];
}
w[(j+)>>].score++;
}
merge(w+,w+n/+,f+,f+n/+,a+,cmp);
}
printf("%d\n",a[q].num);
return ;
}
表达式的值
一边用栈计算表达式,计算过程中DP(其实是递推)
/*by SilverN*/
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<vector>
using namespace std;
const int mod=;
const int mxn=;
int f[mxn][],ntp=;
int n;
char st[mxn];int ctop=;
char s[mxn];
int cmp(char x){
if(!ctop)return ;
if(st[ctop]=='(')return ;
if(st[ctop]=='*')return ;
if(x=='*')return ;
if(st[ctop]=='+')return ;
return ;
}
void clc(char x){
int xa=f[ntp][],xb=f[ntp--][];//0 1
int ya=f[ntp][],yb=f[ntp--][];//0 1
int resa=,resb=;
if(x=='+'){
(resa+=xa*ya)%=mod;
(resb+=xa*yb)%=mod;
(resb+=xb*yb)%=mod;
(resb+=xb*ya)%=mod;
}
else{
(resb+=(xb*yb))%=mod;
(resa+=xa*yb+xb*ya)%=mod;
(resa+=xa*ya)%=mod;
}
f[++ntp][]=resa;
f[ntp][]=resb;
return;
}
int main(){
scanf("%d",&n);
scanf("%s",s+);
s[]='(';
s[++n]=')';
int i,j;
for(int i=;i<=n;i++){
// printf("%d %c\n",i,s[i]);
// for(j=1;j<=4;j++)printf("%d %d\n",f[j][0],f[j][1]);
// for(j=1;j<=4;j++)printf("%c ",st[j]);
// printf("\n");
if(s[i]=='('){
st[++ctop]=s[i];
continue;
}
if(s[i-]!=')'){ f[++ntp][]=;
f[ntp][]=;
}
if(s[i]=='+'){
while(cmp(st[ctop]))clc(st[ctop--]);
st[++ctop]=s[i];
}
else if(s[i]=='*'){
while(cmp(st[ctop]))clc(st[ctop--]);
st[++ctop]=s[i];
}
else if(s[i]==')'){
while(ctop && st[ctop]!='('){
clc(st[ctop--]);
}
ctop--;
}
}
printf("%d\n",f[][]);
return ;
}
[NOIP2011] 普及组的更多相关文章
- NOIP2011 普及组 T3 洛谷P1309 瑞士轮
今天题做太少,放道小题凑数233 题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公 ...
- NOIP2011普及组 数字反转
题目OJ链接: http://codevs.cn/problem/1130/ https://www.luogu.org/problemnew/show/P1307 2011年NOIP全国联赛普及组 ...
- [NOIP2011普及组]瑞士轮 JAVA实现
题目描述 2*N名编号为1~2N的选手共进行R轮比赛.每轮比赛开始前,以及所有比赛结束后,都会按照总分从高到低对选手进行一次排名.选手的总分为第一轮开始前的初始分数加上已参加过的所有比赛的得分和.总分 ...
- noip2011普及组——统计单词数
统计单词数 时间限制:1 s 内存限制:128MB [问题描述]一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数.现在,请你编程实 ...
- noip2011普及组——数字反转
数字反转 时间限制:1s 内存限制:128MB[问题描述]给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零 ...
- NOIP2011普及组 瑞士环 保序性
题目链接:http://noi.openjudge.cn/ch0401/4363/ 分析:如果直接模拟,时间复杂度是O(r*nlogn)超时 然后我们发现每次一轮开始时,刚开始是保序的,然后我们可以把 ...
- 【单调队列】Vijos P1771 瑞士轮 (NOIP2011普及组第三题)
题目链接: https://vijos.org/p/1771 题目大意: 给定2N个人(N<=100 000)和其初始分数.能力值(能力两两不同),比赛M次(M<=50),每次PK都是按分 ...
- 【解题报告】瑞士轮(NOIP2011普及组T3)
[题外话:这道题吧……说实话我不太喜欢……因为卡快排.] 题目不贴了,就是给你一个赛制,然后各个选手的初始得分和能力值,问你进行R轮比赛之后第Q名的编号是多少(这个编号读进来就要算OYZ,初始快排的时 ...
- NOIP2011普及组 瑞士轮
OJ地址: https://www.luogu.org/problemnew/show/P1309 http://bailian.openjudge.cn/practice/4031/ 总时间限制: ...
随机推荐
- AS3声音录音
MicRecorder, a tiny microphone library http://www.bytearray.org/?p=1858
- android窗口泄漏,isInEditMode解决可视化编辑器无法识别自定义控件的问题
android窗口泄漏 在做项目是遇到这个错误:google:WindowManager: Activity has leaked window. 产 生原因:我们知道Android的每一个Activ ...
- smarty缓存控制
第一步初始化配置文件中设置 如果当前访问的模板有缓存就不需要连接数据库那些代码了,如果要模板局部不缓存,要写在iscache外,模板中用{nocache}
- 10301 MySQL各个版本区别及下载
参考:http://www.admin10000.com/document/62.html MySQL 的官网下载地址:http://www.mysql.com/downloads/ 在这个下载界面会 ...
- Scrapy
Scrapy 从Python的Urllib.Urlllib2到scrapy,当然,scrapy的性能且效率是最高的,自己之前也看过一些资料,在此学习总结下. Scrapy介绍 关于scrapy scr ...
- C语言 共用体
//共用体 union #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #includ ...
- [转]SQLServer跨服务器访问数据库(openrowset/opendatasource/openquery)
正 文: 1.启用Ad Hoc Distributed Queries 在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因 ...
- 自己实现一个高大尚的Android客户端
毕业差不多一年了,一直做得都是很底层的东西,由于面向的客户群不同,主要实现在于功能,效率,没有很炫的界面,客户也并不在意界面有多炫.看到各大市场各种高大尚的app,简直亮瞎了我的眼啊,下决心自己实现一 ...
- win7桌面移到其他盘
打开"计算机",点"用户"--"Administrator"点进去,或者,打开我的文档,然后右键点"桌面""属 ...
- Object C学习笔记26-文件管理(二)
上一篇简单的介绍了如何获取文件属性,删除,拷贝文件等,本文继续记录Object C中文件IO操作. 一. 获取文件的执行主目录 在Object C中提供了一个方法 NSHomeDirectory() ...