單點時限: 2.0 sec
記憶體限制: 256 mb
題目
列印 n 個相同的字元,插入或刪除乙個字元花費的時間為 x,複製當前整個文字並且貼上在後面的時間花費為 y,求完成 n 個字元的列印所需的最小花費時間。
輸入格式
三個整數 n,x,y (1≤n≤107,1≤x,y≤109),整數之間用乙個空格分隔。對於不超過 30% 的資料,n≤105。
輸出格式
輸出乙個整數表示答案。
樣例
input
8 1 1
output
4
input
8 1 10
output
8
**
#include
#include
#include
#include
#include
#include
using
namespace std;
const
long
long maxn=
100000010
;long
long dp[maxn]=;
intmain()
cout<;return0;
}
單點時限: 2.0 sec
記憶體限制: 256 mb
題目
給定整數 a 和 b,輸出區間 [a,b] 中對應二進位制表示含 1 的個數最多的整數。如果存在多個解,則輸出符合條件的最小的整數。
輸入格式
第一行乙個整數 t (1≤t≤104),表示問題數。
接下來 t 行,每行兩個整數 a,b (0≤a≤b≤263−1)。資料之間用乙個空格分隔。
共有兩組資料,分別為小資料和大資料,大資料範圍如上。對於小資料:t≤10,a≤b≤5⋅106。
輸出格式
對於每個問題,輸出一行 case x: y,其中 x 是問題編號,從 1 開始,y 是答案。
樣例
input
3
0 14
100 1000
3966869755091699093 4597827455649079876
output
case 1: 7
case 2: 511
case 3: 4035225266123964415
提示
第乙個樣例資料:a=0,b=14,在 [0,14] 之間含 1 最多的整數為 7(0111),11(1011),13(1101),14(1110),輸出最小的整數為 7。
注意,第三組樣例不會出現在小資料中。
**
#include
#include
using
namespace std;
typedef
unsigned
long
long ll;
//事先定義可以加快執行速度,他可以表示10的9次方的數
intmain()
printf
("case %d: %llu\n"
, i, a);}
return0;
}
單點時限: 2.0 sec
記憶體限制: 256 mb
題目
給定 n 個關於整數 x 的不等式,問最多有多少個不等式成立。每個不等式為如下的形式之一:
x < c
x <= c
x = c
x > c
x >= c
輸入格式
第一行乙個整數 n (1≤n≤200),表示不等式個數。接下來 n 行,每行乙個不等式。不等式輸入格式為:x sign c,關係運算子 (sign) 左右各有乙個空格,c 是整數,0≤c≤109。關係運算子為:<, <=, =, >, >=。對於 35% 的資料,關係運算子只會出現 <= 和 >=。對於 85% 的資料,c≤103。
輸出格式
輸出最多可以同時成立的不等式個數。
樣例
input
4
x = 1
x = 2
x = 3
x > 0
output
2
input
10
x >= 10
x <= 90
x = 1
x > 35
x < 90
x <= 1000
x > 0
x = 900
x < 500
x > 300
output
7
**
這題肯定要分區間討論的,如果從最小值+1列舉,就會在18樣例超時,所以縮小區間,就是以輸入的數字作為區間端點來劃分區間,然後對所有斷點測試滿足多少個不等式。其實這樣做是不嚴謹的,但是還是ac了,暫時沒有想到更好的法子。
#include
using
namespace std;
struct dataa[
200]
;int n,rst;
string s;
int b[
200]
;int i;
void
jdg(
int m)
rst=
max(rst,tmp);}
intmain()
sort
(b,b+n)
;jdg
(b[0]-
1),jdg
(b[n-1]
+1);
for(i=
0;i++i)
jdg(b[i]);
cout
}
單點時限: 2.0 sec
記憶體限制: 256 mb
題目
某大學夏令營有乙個神奇的考試叫作「十億分考」,考試總分 q 你是不知道的,你最後得分 p 你也不知道,你只知道你得分的比例(以小數形式),換而言之就是 p÷q。這個大學對待分數非常講究精確,給你的這個比例,不多不少,恰好精確到小數點後第 15 位。現在要讓你猜一猜 p 和 q。
輸入格式
一行乙個小數 a (0≤a≤1),保證精確到小數點後 15 位。換而言之,若把它當作字串的話,長度一定是 17。
輸出格式
一行兩個整數 p (0≤p≤q) 和 q (1≤q≤109),以空格隔開。要滿足 pq 四捨五入精確到小數點後第十五位後,與給出的數字相同。請注意總分是不會超過十億分的(不然怎麼叫十億分考)。萬一你對中文沒概念的話,十億就是 109。
如果有多解,輸出任意一解。
樣例
input
0.333333333333333
output
1 3
**
暴力列舉肯定超時,好吧不會了,後面都不會了。。。
貼一下一位大佬的解法,人家這暴力很有技巧呀!奉上膝蓋
#include
using
namespace std;
typedef
long
long ll;
typedef
long
double ld;
const
int mod=
1e9+1;
const ld eps=
4e-16
;ld val;
ll up,dn,mid;
intmain()
}}return0;
}
後面兩題不想做了,想看自己去eoj瞅瞅~~~ 南京大學 計算機系 夏令營
輸入 輸出 輸入 輸出 思路 最長上公升子串行的變種 每遍歷到字串中的字元,若存在比當前字元大的字元,則刪除之 直到刪除的個數已為k 或遍歷到了 最後乙個字元為止 include include include using namespace std intmain int len num.leng...
2017計算機學科夏令營上機考試 A 判決素數個數
總時間限制 1000ms 記憶體限制 65536kb描述 輸入兩個整數x和y,輸出兩者之間的素數個數 包括x和y 輸入兩個整數x和y 1 x,y 10 5 輸出輸出乙個整數,表示x,y之間的素數個數 包括x和y 樣例輸入 1 100 樣例輸出 25 思路分析 方法1 直接用普通素數篩選模板,篩選出 ...
2017計算機學科夏令營上機考試 B編碼字串
總時間限制 1000ms 記憶體限制 65536kb 描述在資料壓縮中,乙個常用的方法是行程長度編碼壓縮。對於乙個待壓縮的字串,我們可以依次記錄每個字元及重複的次數。例如,待壓縮的字串為 aaabbbbcbb 壓縮結果為 a,3 b,4 c,1 b,2 這種壓縮對於相鄰資料重複較多的情況有效,如果重...